今天,我第一次在本地计算机上启动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 -s
关闭我的应用程序时,关闭Redis的正确方法是什么?
这旨在作为命令发送给redis,而不是在您的终端上执行。
在这种情况下,您实际上可以只是kill从终端进行Redis,因为在收到SIGTERM信号后,它会安排SHUTDOWN而不是简单地退出。
kill
SIGTERM
有关参考,请参见信号处理文档页面。