Вот мой юнит-файл службы systemd:
[Unit]
Description=Tunnel For %i
After=network.target
[Service]
User=autossh
ExecStart=/usr/bin/autossh -M 0 -N -o "ExitOnForwardFailure yes" -o "ConnectTimeout=1" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 40443:installserver:40443 -R 8080:installserver:8080 tunnel@%i
Restart=always
[Install]
WantedBy=multi-user.target
Модуль вышел из строя 15 дней назад, и systemd не перезапустил его, хотя «Restart = always» находится в вышеуказанном файле модуля.
Вот вывод статуса этой службы:
salt:/srv # systemctl status autossh@eins-work
autossh@eins-work.service - Tunnel For eins-work
Loaded: loaded (/etc/systemd/system/autossh@.service; enabled)
Active: failed (Result: start-limit) since Wed, 2016-02-10 14:33:34 CET; 2 weeks and 1 days ago
Main PID: 17980 (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/autossh@.service/eins-work
Feb 10 14:33:34 salt systemd[1]: Stopping Tunnel For eins-work...
Feb 10 14:33:34 salt systemd[1]: Starting Tunnel For eins-work...
Feb 10 14:33:34 salt systemd[1]: Failed to start Tunnel For eins-work.
Feb 10 14:33:34 salt systemd[1]: Unit autossh@eins-work.service entered failed state
Связанный: https://serverfault.com/a/563401/90324
Как настроить службу systemd, чтобы она всегда перезапускалась в случае сбоя?
Службе не удавалось запускаться слишком много раз подряд, поэтому systemd оставил попытки. Это то, что Result: start-limit
средства.
Обратите внимание, что блоки, настроенные для
Restart=
и которые достигли начального лимита, больше не предпринимаются попытки перезапуска; тем не менее, они могут быть перезапущены вручную позже, и с этого момента логика перезапуска снова активируется. Обратите внимание, чтоsystemctl reset-failed
вызовет сброс счетчика скорости перезапуска для службы, что полезно, если администратор хочет запустить устройство вручную, и лимит запуска мешает этому.
Вы должны решить проблему, из-за которой служба не запускается.
Если вам нужно настроить, сколько раз и как быстро systemd пытается перезапустить отказавшую службу, см. в StartLimitInterval=
, StartLimitBurst=
и StartLimitAction=
параметры.