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
[email protected] - Tunnel For eins-work
      Loaded: loaded (/etc/systemd/system/[email protected]; 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/[email protected]/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 [email protected] entered failed state

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

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

guettli
la source
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 .

Michael Hampton
la source