Aller au contenu principal

Redémarrage automatique après une panne

Environnement : machine virtuelle de démonstration.

Configurer la politique de redémarrage dans un complément restart.conf avec les valeurs suivantes.

Créer un complément de configuration dédié, sans réécrire le fichier principal :

sudo mkdir -p /etc/systemd/system/lab-demo.service.d
sudo tee /etc/systemd/system/lab-demo.service.d/restart.conf > /dev/null <<'EOF'
[Service]
Restart=on-failure
RestartSec=3s
EOF

sudo systemctl daemon-reload
sudo systemctl start lab-demo.service
systemctl show lab-demo.service -p MainPID -p Restart -p NRestarts

Le fichier complémentaire, appelé drop-in, ajoute ou remplace des options de l’unité. systemctl cat lab-demo.service montre le fichier principal et ses compléments.

Après avoir noté le PID initial, simuler une panne du seul processus principal de ce service de démonstration :

sudo systemctl kill --kill-whom=main --signal=SIGKILL lab-demo.service

Attendre environ cinq secondes, puis :

systemctl show lab-demo.service -p ActiveState -p MainPID -p NRestarts
sudo journalctl -u lab-demo.service -b -n 20 --no-pager --full

Attendu : service revenu actif, nouveau PID et augmentation de NRestarts. SIGKILL est ici une panne simulée ; ce n’est pas une procédure normale d’arrêt.

Comparer ensuite avec un arrêt volontaire :

sudo systemctl stop lab-demo.service

Après cinq secondes, systemctl is-active lab-demo.service doit rester inactive. Le service conserve son état désactivé au démarrage : start ne fait pas enable.