Настроим службу systemd для перезапуска в случае сбоя.
По умолчанию служба будет помечена как сбойная после пяти запусков подряд в течение десяти секунд.
$ cat /etc/systemd/system.conf | grep StartLimit
#DefaultStartLimitIntervalSec=10s #DefaultStartLimitBurst=5
Создайте каталог конфигурации drop-in и определите следующие параметры для перезапуска службы (в данном примере honeycreeper) каждые десять секунд в случае сбоя.
$ sudo mkdir -p /etc/systemd/system/honeycreeper.service.d
$ cat <<EOF | sudo tee /etc/systemd/system/honeycreeper.service.d/restart.conf [Unit] StartLimitIntervalSec=0 [Service] Restart=always RestartSec=10 EOF
$ sudo systemctl daemon-reload
В случае сбоя сервис будет перезапускаться бесконечно.
$ sudo systemctl status honeycreeper
● honeycreeper.service - honeycreeper Loaded: loaded (/etc/systemd/system/honeycreeper.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/honeycreeper.service.d └─restart.conf Active: activating (auto-restart) (Result: exit-code) since Sun 2020-08-23 19:19:37 CEST; 6s ago Docs: man:honeycreeper(1) file:/usr/share/doc/honeycreeper/configuration.txt.gz Process: 614105 ExecStartPre=/usr/sbin/honeycreeper -f $CONFIG -c -q $EXTRAOPTS (code=exited, status=1/FAILURE)
Служба не будет помечена как сбойная, потому что она использует функцию постоянного автоматического перезапуска.
$ sudo systemctl --failed
UNIT LOAD ACTIVE SUB DESCRIPTION 0 loaded units listed.