gpt4 book ai didi

redis - 无法使用systemctl在Centos 7上启动redis服务器

转载 作者:可可西里 更新时间:2023-11-01 11:24:19 24 4
gpt4 key购买 nike

我在 CentOS7 上使用 systemctl 启动 Redis 时遇到了一些问题。我应该怎么做才能排除故障?

我可以使用正常的命令来启动Redis。喜欢:

#/etc/init.d/redis 开始或者/usr/local/bin/redis-server/etc/redis/config.conf

这是我放入 /lib/systemd/system 中的 redis.service 文件:

[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
Type=forking
PIDFILE=/var/run/redis_6379.pid
ExecStart=/etc/init.d/redis start
ExecStop=/etc/init.d/redis stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

但是当我使用命令 systemctl start redis 来启动 redis 服务器时。我什么都没有。

我尝试使用 systemctl status redis 读取 systemctl 日志,它向我显示了这些消息:

● redis.service - Redis persistent key-value database
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled)
Active: active (exited) since Fri 2018-08-31 15:45:37 CST; 2 days ago

Aug 31 15:45:37 redisserver001 systemd[1]: Starting LSB: start and stop redis_6379...
Aug 31 15:45:37 redisserver001 systemd[1]: Started LSB: start and stop redis_6379.
Aug 31 15:45:37 redisserver001 redis[24755]: /var/run/redis_6379.pid exists, process is already running or crashed
Sep 03 10:31:21 redisserver001 systemd[1]: [/usr/lib/systemd/system/redis.service:6] Unknown lvalue 'PIDFILE' in section 'Service'
Sep 03 10:33:13 redisserver001 systemd[1]: [/usr/lib/systemd/system/redis.service:6] Unknown lvalue 'PIDFILE' in section 'Service'
Sep 03 10:45:32 redisserver001 systemd[1]: [/usr/lib/systemd/system/redis.service:7] Unknown lvalue 'PIDFILE' in section 'Service'
Sep 03 11:08:28 redisserver001 systemd[1]: [/usr/lib/systemd/system/redis.service:7] Unknown lvalue 'PIDFILE' in section 'Service'

以下几项是我认为可能影响redis运行的关键配置。但我不知道我在哪里犯了错误。请帮忙。非常感谢。

pidfile /var/run/redis_6379.pid
daemonize yes
supervised systemd

最佳答案

如果应用程序在服务文件中指定了“pidfile”属性,则应用程序有责任在服务初始化完成之前将主进程的 pid 写入该文件。您需要确保您的应用程序正在这样做。 Systemd 将读取此值,如果用户执行“systemctl start”并且 pid 文件已经存在,则会阻止创建另一个 fork 进程。从您发布的输出来看,systemd 似乎认为 redis 进程已经在运行(因为存在 pid 文件,并且没有创建新进程)。您可以在服务文件的“ExecStartPost”子句中设置 pid。像这样的东西:

ExecStartPost=/bin/sh -c 'umask 022; pgrep YOURSERVICE > /var/run/YOURSERVICE.pid'

关于redis - 无法使用systemctl在Centos 7上启动redis服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52142936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com