Systemd non riavvia il servizio, sebbene Restart = sempre


10

Ecco il mio file di unità di un servizio 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à si è guastata 15 giorni fa e systemd non l'ha riavviata, anche se "Restart = always" si trova sopra il file dell'unità.

Ecco l'output di stato di questo servizio:

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

Correlato: https://serverfault.com/a/563401/90324

Come configurare un servizio systemd per riavviare sempre se qualcosa non riesce?


Potresti avviarlo manualmente dopo un errore?
Thang Pham,

Risposte:


4

Il servizio non è stato avviato troppe volte di seguito, quindi Systemd ha rinunciato a provare. Questo è ciò che Result: start-limitsignifica.

Notare che le unità configurate per Restart=e che raggiungono il limite di avvio non tentano più di essere riavviate; tuttavia, potrebbero essere riavviati manualmente in un secondo momento, da quel momento in poi la logica di riavvio verrà nuovamente attivata. Si noti che systemctl reset-failedcauserà lo svuotamento del contatore della frequenza di riavvio di un servizio, il che è utile se l'amministratore desidera avviare manualmente un'unità e il limite di avvio interferisce con quello.

È necessario risolvere il problema che impedisce l'avvio del servizio.

Se avete bisogno di sintonizzarsi quante volte e come i tentativi di riavviare un servizio non aver fretta systemd, vedere i StartLimitInterval=, StartLimitBurst=e le StartLimitAction=opzioni .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.