systemctl 启动不 returning/exiting

systemctl start not returning/exiting

我正在尝试为 redis 启动一个服务文件,我读过很多关于运行将它作为系统服务的帖子,但我不确定为什么会这样。

当我运行 sudo systemctl start redis-server.service 它不会 return/exit - 只是坐在那里,光标闪烁,直到我按下 Ctrl-C。我已经确认服务器已启动并且 运行ning 所以服务器似乎工作正常 - 我不确定为什么 systemctl start 永远不会退出。 Redis 旨在与 systemd 一起使用,并且使用参数 --supervised systemd 服务应该是 Type=notify.

我的服务文件是:

[Unit]
Description=Redis

[Service]
Type=notify
User=john
Group=john
ExecStart=/usr/local/bin/redis-server /home/john/redis/redis.conf --supervised systemd --daemonize no
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=on-success
WorkingDirectory=/home/john/redis

[Install]
WantedBy=multi-user.target

redis.conf的内容是:

port              6379
save              60 1
bind              127.0.0.1
tcp-keepalive     300
dbfilename        dump.rdb
dir               ./
logfile           ./redis-server.log

从版本 6 的 redis 开始,它似乎需要使用安装在 Ubuntu + Debian 上的 libsystemd-dev 软件包进行编译。请参阅此 GitHub 问题:https://github.com/redis/redis/issues/7284.

安装这个包并重新编译 redis 解决了这个问题。