1

我有一个守护进程运行一段预先配置的时间然后退出。之后用户可以根据需要重新启动它。systemd 似乎无法处理这种类型的服务。下面是我试过的服务文件。

[Unit]
# DaemonXXX quits
Description=DaemonXXX
After=network.target

[Service]
Type=forking
PIDFile=/var/run/daemonXXX.pid
ExecStart=/usr/local/sbin/daemonXXX
StandardOutput=journal

[Install]
WantedBy=multi-user.target

我可以使用上述单元文件启动服务。守护进程退出后,我也可以通过 command 再次启动它systemctrl start DaemonXXX。但是当服务在超时后退出时,systemd抱怨系统降级,因为 daemonXXX 退出。如果我将选项添加RemainAfterExit[Service]部分,

[Unit]
# as above
...

[Service]
# as above
...
RemainAfterExit=yes

...

systemd不会抱怨degrarded系统,但我不再能够通过命令再次重新启动服务,systemctrl start daemonXXX因为systemd假设它daemonXXX运行正确并且不需要重新启动它。有没有办法解决它?

4

0 回答 0