J'ai un service de sauvegarde appelé toutes les heures par un minuterie.de.sauvegarde . Malheureusement, le script de sauvegarde exécuté à l'intérieur du conteneur peut compléter succès mais avec des avertissements renvoyant un code de sortie non nul. Ainsi, bien que tout ait fonctionné, le conteneur s'arrête avec un code de sortie non nul. L'unité entre donc échoué l'état de la flotte.
Et dans ce cas, il semble que le timer ne redémarre pas cette unité, bien que je n'aie rien trouvé dans la documentation de systemd qui le dise.
Pour que ce soit clair : Je peux parfaitement faire en sorte que le conteneur s'arrête avec un code de sortie non nul. Mais ma minuterie ne fonctionne pas alors.
Je pourrais maintenant excapsuler ce script dans un autre qui est ensuite appelé als docker entrypoint. Mais je devrai m'assurer que la sortie sur STDOUT et STDERR est conservée d'une manière ou d'une autre.
J'ai aussi pu courir sudo systemctl reset-failed après l'échec de l'unité, mais cela me semble un peu bidon... (J'ai essayé cela et dans ce cas le timer a relancé l'unité. Mais cela ne fonctionne pas comme ExecStopPost-Task dans le fichier de service)
Y a-t-il un meilleur moyen de s'assurer qu'une unité
- n'entre pas dans l'état d'échec bien qu'il renvoie un résultat différent de zéro, ou bien
- réinitialiser son état après coup, ou
- dire au timer de faire tourner cette unité même si son statut est échoué ?