Назад | Перейти на главную страницу

systemd перестает перезапускать службу

tl; dr: systemd перезапускает аварийную службу на несколько дней, а затем внезапно останавливается.

У меня настроена служба следующим образом:

[Unit]

[Service]
Restart=always
RestartSec=2
StartLimitIntervalSec=0
ExecStart=/usr/local/bin/node --max-old-space-size=4096 /home/somewhere/something.js
StandardOutput=null
StandardError=null
KillMode=process

[Install]
WantedBy=multi-user.target

Этот код иногда дает сбой (1-2 раза в день), поэтому необходимо Restart=always. Однако время от времени эта служба не перезапускается, и вот результат systemctl status:

   Loaded: loaded (/home/somewhere/something-systemd.service; bad; vendor preset: enabled)
   Active: inactive (dead) (Result: exit-code) since Mon 2017-12-04 10:10:46 CET; 7s ago
  Process: 333 ExecStart=/usr/local/bin/node --max-old-space-size=4096 /home/somewhere/something.js (code=exited, status=1/FAILURE)
 Main PID: 333 (code=exited, status=1/FAILURE)

В моей конфигурации есть ошибка? Как заставить systemd перезапустить службу несмотря ни на что?

StartLimitIntervalSec= принадлежит разделу [Unit]. Видеть https://www.freedesktop.org/software/systemd/man/systemd.unit.html#

[Unit] Параметры раздела

StartLimitIntervalSec =, StartLimitBurst =

Настройте ограничение начальной скорости агрегата. По умолчанию агрегаты, которые запускаются более 5 раз в течение 10 секунд, не могут запускаться больше раз, пока не закончится 10-секундный интервал. ...

Как это:

[Unit]
StartLimitIntervalSec=0    

[Service]
Restart=always
RestartSec=2
ExecStart=/usr/local/bin/node --max-old-space-size=4096 /home/somewhere/something.js
StandardOutput=null
StandardError=null
KillMode=process

[Install]
WantedBy=multi-user.target