systemd pára de reiniciar o serviço

4

tl; dr: o systemd reinicia um serviço com falha por dias e depois pára de repente.

Eu tenho um serviço configurado da seguinte forma:

[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

Esse código falha algumas vezes (1-2 vezes por dia), portanto, a necessidade de Restart=always . No entanto, de vez em quando esse serviço não é reiniciado e aqui está a saída de 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)

Existe algum erro na minha configuração? Como faço para forçar o systemd a reiniciar um serviço, não importa o quê?

    
por egorFiNE 06.12.2017 / 12:22

1 resposta

1

StartLimitIntervalSec= pertence à seção [Unidade]. Consulte o link

[Unit] Section Options

StartLimitIntervalSec=, StartLimitBurst=

Configure unit start rate limiting. By default, units which are started more than 5 times within 10 seconds are not permitted to start any more times until the 10 second interval ends. ...

Assim:

[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
    
por 06.12.2017 / 13:57

Tags