我正在尝试设置 systemd 服务配置以在看门狗失败时重新启动服务。如果我的应用程序没有及时调用 sd_notify(),systemd 会生成新实例。但是,前一个实例不会被杀死。一段时间后,我运行了许多应用程序实例。
$ systemctl status my-daemon.service
Loaded: loaded (/lib/systemd/system/my-daemon.service; disabled)
Active: active (running) since Tue, 26 Aug 2014 10:27:46 +0000; 7s ago
Main PID: 1433 (attendance-syst)
CGroup: name=systemd:/system/my-daemon.service
├ 1281 /usr/local/bin/my-daemon
├ 1384 /usr/local/bin/my-daemon
├ 1407 /usr/local/bin/my-daemon
└ 1433 /usr/local/bin/my-daemon
...
这是我的服务文件的一部分:
[Service]
ExecStart=/usr/local/bin/my-daemon
TimeoutStopSec=5
WatchdogSec=10
Restart=on-failure
我如何配置 systemd 来杀死在看门狗上失败的实例?
我已经阅读了手册页,但它对我没有帮助。
我认为Restart=on-failure
默认情况下应该重新启动挂起的进程......