我显然有一个redis-server实例正在运行,因为当我试图通过输入redis-server启动一个新服务器时,我受到以下欢迎:
Opening port: bind: Address already in use
我不知道如何停止这个服务器,并启动一个新的。
当我在CLI中输入时,是否有任何命令可以附加到redis-server ?
我的操作系统是Ubuntu 10.04。
我显然有一个redis-server实例正在运行,因为当我试图通过输入redis-server启动一个新服务器时,我受到以下欢迎:
Opening port: bind: Address already in use
我不知道如何停止这个服务器,并启动一个新的。
当我在CLI中输入时,是否有任何命令可以附加到redis-server ?
我的操作系统是Ubuntu 10.04。
当前回答
检查redis命令是否对你不起作用的一件事是如果你的redis-server。Pid实际上是被创建的。您指定该文件所在的位置
/etc/systemd/system/redis.service
它应该有一个类似这样的部分:
[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/run/redis/redis-server.pid
TimeoutStopSec=0
Restart=always
检查PIDFile目录的位置和权限(在我的例子中是'/run/redis')。我试图重新启动以部署登录的服务,但目录权限被列为
drwxrwsr-x 2 雷迪斯 雷迪斯 40 七月 20 17:37 雷迪斯
如果你需要一个关于linux权限的复习,看看这个。但问题是,我正在以我的部署用户执行重启,上面的权限是r-x,不允许我的用户写入PIDFile目录。
当我意识到这一点时,我使用root登录,在redis上重新运行重启命令(service redis restart),一切都正常了。这很让人头疼,但希望这能为大家节省一点时间。
其他回答
以root用户在终端中停止redis服务器类型
sudo service redis-server stop
停止redis-server后会显示此消息
Stopping redis-server: redis-server.
如果你想启动redis-server类型
sudo service redis-server start
如果要重新启动服务器类型
sudo service redis-server restart
MacOSX -它工作了:)
步骤1:找到之前运行的Redis服务器
ps auxx | grep redis-server
步骤2:通过查找PID(进程ID) - Redis Sever来杀死特定的进程
kill -9 PID
停止redis服务
sudo service redis-server stop
并检查其使用状态
sudo service redis-server status
在MacOSX上,
这对我来说很管用
/etc/init.d/redis restart
/etc/init.d/redis stop
/etc/init.d/redis start
我不知道redis的具体情况,但对于一般的服务器来说:
什么操作系统或发行版?通常会有一个stop或/etc/init.d/…命令,该命令能够在pid文件中查找现有的pid。
您可以使用sudo netstat -nlpt (linux options;其他netstat口味会有所不同),并发出停止的信号。我不会在运行中的服务器上使用kill -9,除非真的没有其他信号或方法来关闭它。