Systemd no reinicia el servicio, aunque Reiniciar = siempre

10

Aquí está mi archivo de unidad de un servicio 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

La unidad falló hace 15 días y systemd no la reinició, aunque "Reiniciar = siempre" se encuentra en el archivo de la unidad anterior.

Aquí el resultado del estado de este servicio:

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

Relacionado: /server//a/563401/90324

¿Cómo configurar un servicio systemd para reiniciar siempre si algo falla?

guettli
fuente
¿Podría iniciarlo manualmente después de la falla?
Thang Pham

Respuestas:

4

El servicio no pudo iniciarse demasiadas veces seguidas, por lo que systemd dejó de intentarlo. Esto es lo que Result: start-limitsignifica.

Tenga en cuenta que las unidades que están configuradas Restart=y que alcanzan el límite de inicio ya no se intentan reiniciar; sin embargo, aún pueden reiniciarse manualmente en un punto posterior, a partir de ese momento, la lógica de reinicio se activa nuevamente. Tenga en cuenta que systemctl reset-failedhará que se vacíe el contador de velocidad de reinicio para un servicio, lo cual es útil si el administrador desea iniciar manualmente una unidad y el límite de inicio interfiere con eso.

Debe resolver el problema que hace que el servicio no se inicie.

Si necesita sintonizar cuántas veces y cómo los intentos de reiniciar un servicio no systemd rápidamente, consulte las StartLimitInterval=, StartLimitBurst=y StartLimitAction=opciones .

Michael Hampton
fuente