我今天第一次在我的本地机器上启动Redis,然后在关闭我的Rails应用程序后关闭所有终端窗口。一小时后,我再次启动了Rails应用程序并执行以下操作以启动redis服务器
redis-server /usr/local/etc/redis.conf
但是,它告诉我
# Opening port 6379: bind: Address already in use
因此,我假设它仍在运行其早期实例,即使我关闭了Mac上的终端窗口。
看看这个页面http://redis.io/commands/shutdown,我试着跑
SHUTDOWN
在终端窗口但我收到了这个回复
SHUTDOWN: NOT super-user
我因此尝试过(即使我没有使用sudo启动它)
sudo SHUTDOWN
在它询问我的密码后,输出了这个
usage: shutdown [-] [-h [-u] [-n] | -r [-n] | -s | -k] time [warning-message ...]
但当我随机跑shutdown -s
时,它说
SHUTDOWN: NOT super-user
关闭应用程序时关闭Redis的正确方法是什么?
这意味着作为命令发送到redis,而不是在终端上执行。
在这种情况下,你实际上只能从终端kill
redis,因为在收到SIGTERM
信号后,它将安排SHUTDOWN而不是简单地退出。
使用内置的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