关闭Redis
今天我第一次在本地机器上启动了Redis,然后在关闭Rails应用程序后关闭了所有终端窗口。一小时后,我再次启动Rails应用程序,并执行以下操作来启动redis服务器关闭Redis,redis,Redis,今天我第一次在本地机器上启动了Redis,然后在关闭Rails应用程序后关闭了所有终端窗口。一小时后,我再次启动Rails应用程序,并执行以下操作来启动redis服务器 redis-server /usr/local/etc/redis.conf 然而,它告诉我 # Opening port 6379: bind: Address already in use 因此,即使我关闭了Mac上的终端窗口,我还是认为它仍在运行早期的实例 看着这页,我试着跑 SHUTDOWN 在终端窗口中,但我得到
redis-server /usr/local/etc/redis.conf
然而,它告诉我
# Opening port 6379: bind: Address already in use
因此,即使我关闭了Mac上的终端窗口,我还是认为它仍在运行早期的实例
看着这页,我试着跑
SHUTDOWN
在终端窗口中,但我得到了这个响应
SHUTDOWN: NOT super-user
因此我尝试了(尽管我没有使用sudo启动它)
在它询问我的密码后,它输出这个
usage: shutdown [-] [-h [-u] [-n] | -r [-n] | -s | -k] time [warning-message ...]
但是当我随机运行shutdown-s
时,它说
SHUTDOWN: NOT super-user
当我关闭我的应用程序时,关闭Redis的正确方法是什么?这是作为命令发送给Redis的,而不是在你的终端上执行 在这种情况下,您实际上可以从终端上关闭redis,因为一旦收到
SIGTERM
信号,它将计划关闭,而不是简单地退出
参考使用内置的redis客户端:
redis cli shutdown
查找计算机上运行的redis实例的进程id
> ps aux | grep redis
impadmin 23277 0.0 0.0 35044 1976 pts/2 Sl+ 14:19 0:00 src/redis-server
。。。然后运行:
> kill 23277
实际上,运行'kill'会给我这个kill:用法:kill[-s sigspec |-n signum |-sigspec]pid | jobspec。。。或者kill-l[sigspec]您需要提供要kill的进程ID,以便它知道在哪里发送SIGTERM信号。看看这个:好的,对于任何看到这个答案的人来说,我通过执行'redis cli info | grep process _id'获得进程id,然后运行'kill 2694'“ps aux | grep redis”是正常的方式,仅供参考:)如何告诉ps包含列标题?应该是最重要的答案。嘿,我15分钟前无意中否决了你的问题。我刚刚意识到这一点,但我无法撤销它。如果你编辑它,我想我可以撤销它。我真的非常抱歉。我尝试了这种方法,但一直注意到我的
redis服务器进程出于某种原因不断更改其PID。。。因此,每次我运行ps aux | grep redis
时,显示的PID将不同于上次运行的ps aux | grep redis
。最终,redis cli关闭是我想要的。
> kill 23277