Я пытаюсь настроить конфигурацию службы 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
по умолчанию перезапустит зависший процесс...