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 解决了这个问题。
我正在尝试为 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 解决了这个问题。