Riavviare un servizio automaticamente in Systemd

Mattepuffo's logo
Riavviare un servizio automaticamente in Systemd

Riavviare un servizio automaticamente in Systemd

In Systemd possiamo veramente fare tante cose in autonomia, basta solo un pò di docuementazione.

In questo articolo vediamo come impostare un servizio per il riavvio automatico.

Per prima cosa dobbiamo prendere il nome esatto del servizio che ci interessa.

Possiamo listare i servizi attivi così:

$ systemctl list-units --type=service --state=running

Nel mio caso lo devo impostare su mongodb, quindi prima di tutto controllo in che stato sia:

$ systemctl status mongodb
● mongodb.service - MongoDB Database Server
     Loaded: loaded (/usr/lib/systemd/system/mongodb.service; enabled; preset: disabled)
     Active: active (running) since Tue 2025-03-25 14:09:58 CET; 1min 9s ago
 Invocation: d8683fc8783f4c119cfb0de57f872652
       Docs: https://docs.mongodb.org/manual
   Main PID: 1113 (mongod)
     Memory: 296.5M (peak: 375.5M)
        CPU: 1.622s
     CGroup: /system.slice/mongodb.service
             └─1113 /usr/bin/mongod --config /etc/mongodb.conf

A questo punto dobbiamo modificarlo, e possiamo fare così:

# systemctl edit mongodb

Verrà aperto il file di configurazione con il vostro editor predefinito.

Qui dovete aggiungere queste righe:

[Service]
Restart=always
RestartSec=10s

La prima riga indica di riavviare sempre il servizio se va in down.

La seconda imposta un timeout per evitare accavallamenti.

Ricarichiamo i servizi:

# systemctl daemon-reload
# systemctl restart mongodb

E controlliamo lo stato:

# systemctl show mongodb | grep Restart

Per fare una prova vi basta fermare il servizio manualmente ed aspettare il timeout che avete impostato.

Enjoy!


Condividi

Commentami!