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.