因此,在我的 ubuntu 20.04 服务器上安装 redis 后。每当我重新启动时。高级键值存储都会出现停止作业。我相信这是 redis 的一部分,但我不知道为什么它一直出现并且花了这么长时间。我该如何停止它
答案1
我也遇到过这个问题,解决方法很简单。你需要编辑以下命令定义的 redis 服务文件systemctl show -P FragmentPath redis.service
:
$ systemctl show -P FragmentPath redis.service
/lib/systemd/system/redis-server.service
找到包含以下内容的行TimeoutStopSec
并将其设置为所需的最大值(以秒为单位)。我通常将其设置为 5 秒。
配置文件后,该行应如下所示
TimeoutStopSec=5s
现在就是这样,您可能想要运行该命令systemctl daemon-reload
来补充这一点。
然后您可以尝试重新启动或关闭以确认更改有效。
奖金
如果您想设置整个系统的最大超时时间,您可以在/etc/systemd/system.conf
文件中进行设置。
找到该线DefaultTimeoutStopSec
并按照之前的方式进行设置。
答案2
检查你的 /etc/redis/redis.log 文件以查找无法重新启动的原因。
对我来说,我遇到了以下错误:
1963:signal-handler (1670871763) Received SIGTERM scheduling shutdown...
1963:M 12 Dec 2022 14:02:43.145 # User requested shutdown...
1963:M 12 Dec 2022 14:02:43.145 * Saving the final RDB snapshot before
exiting.
1963:M 12 Dec 2022 14:02:43.145 # Failed opening the temp RDB file temp-
1963.rdb (in server root dir /var/log) for saving: Read-only file system
1963:M 12 Dec 2022 14:02:43.145 # Error trying to save the DB, can't exit.
1963:M 12 Dec 2022 14:02:43.145 # Errors trying to shut down the server.
检查日志以获取更多信息。
为了修复此问题,我只需运行以下命令即可。
sudo chown redis /var/log/redis/redis.log && sudo chmod u+x /var/log/redis/redis.log