Systemd ne redémarre pas le service, bien que Redémarrer = toujours


10

Voici mon fichier d'unité d'un service 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

L'unité a échoué il y a 15 jours et systemd ne l'a pas redémarré, bien que "Restart = always" se trouve dans le fichier d'unité ci-dessus.

Voici la sortie d'état de ce service:

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

En relation: /server//a/563401/90324

Comment configurer un service systemd pour qu'il redémarre toujours en cas d'échec?


Pourriez-vous le démarrer manuellement après l'échec?
Thang Pham

Réponses:


4

Le service n'a pas pu démarrer trop de fois de suite, et donc systemd a renoncé à essayer. Voilà ce que Result: start-limitça veut dire.

Notez que les unités configurées pour Restart=et qui atteignent la limite de démarrage ne sont plus tentées de redémarrer; cependant, ils peuvent toujours être redémarrés manuellement ultérieurement, à partir de ce moment, la logique de redémarrage est à nouveau activée. Notez que systemctl reset-failedcela entraînera le vidage du compteur de taux de redémarrage d'un service, ce qui est utile si l'administrateur veut démarrer manuellement une unité et que la limite de démarrage interfère avec cela.

Vous devez résoudre le problème à l'origine du démarrage du service.

Si vous avez besoin de régler le nombre de fois et comment systemd rapidement les tentatives de redémarrage d' un service défaillant, voir les StartLimitInterval=, StartLimitBurst=et les StartLimitAction=options .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.