Aller au contenu principal

Limiter les démarrages répétés — principe et diagnostic

Un systemctl stop volontaire ne déclenche pas de relance. Pour illustrer une boucle d’échecs, utiliser un complément temporaire zz-failure-test.conf, chargé après les autres compléments.

[Unit]
StartLimitIntervalSec=30s
StartLimitBurst=3

[Service]
ExecStart=
ExecStart=/usr/bin/false
Restart=on-failure
RestartSec=1s

false termine avec le code 1. Trois démarrages (le premier compris) sont autorisés dans la période de trente secondes ; la tentative suivante est refusée. Les limites comptent aussi les démarrages manuels. reset-failed efface l’état d’échec et les compteurs de limitation ; il ne répare pas le programme et ne le démarre pas.

Arrêter le service, écrire le complément, recharger systemd, réinitialiser son état d’échec puis démarrer. Avec ces limites, trois démarrages sont autorisés dans la fenêtre de trente secondes ; une tentative supplémentaire est refusée avec le message Start request repeated too quickly. Le compteur de relances planifiées ne correspond pas nécessairement au nombre de démarrages effectifs. Pour restaurer le service, retirer uniquement zz-failure-test.conf, exécuter daemon-reload, reset-failed puis start, et vérifier le statut et les journaux. Les limites du complément disparaissent lorsqu’il est retiré.