web-dev-qa-db-fra.com

Comment configurer un service systemd pour réessayer 5 fois sur un cycle de 30 secondes

Je veux que systemd démarre un script et réessaye au maximum 5 fois, à 30 secondes d'intervalle. La lecture du manuel systemd.service et la recherche sur Internet n'ont produit aucune réponse évidente.

18
jross

Après beaucoup d'essais et d'erreurs, j'ai résolu mon problème et j'ai pensé qu'il valait la peine de poster ici ...

Pour autoriser un maximum de 5 tentatives séparées par 30 secondes, utilisez les options suivantes dans le fichier de service systemd correspondant.

[Unit]
StartLimitInterval=200
StartLimitBurst=5
[Service]
Restart=always
RestartSec=30

Cela a fonctionné pour moi pour un service qui exécute un script en utilisant 'Type = idle'. Notez que "StartLimitInterval" doit être supérieur à "RestartSec * StartLimitBurst" sinon le service sera redémarré indéfiniment.

33
jross