From 8d2e3867f0062f268e163b8da32c6761efcf1846 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Tue, 1 Sep 2015 15:44:28 +0400 Subject: [PATCH] =?UTF-8?q?uscrontab:=20permettre=20d'ignorer=20le=20code?= =?UTF-8?q?=20d'erreur=20pour=20une=20commande=20planifi=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uscrontab | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/uscrontab b/uscrontab index 8f89b0c..05cfe5a 100755 --- a/uscrontab +++ b/uscrontab @@ -95,6 +95,9 @@ Les lignes commençant par # sont des commentaires et sont ignorées \$source path/to/file + Le code d'erreur de ces commandes est ignoré, contrairement à ce qui se + passe pour les commandes qui font l'objet d'une planification. + == Planification de commandes == Les autres lignes doivent être au format d'une ligne de crontab: @@ -134,6 +137,14 @@ Les lignes commençant par # sont des commentaires et sont ignorées 5 1 * * * command1 command2 + Par défaut, le script s'arrête à la première commande planifiée qui retourne + avec un code d'erreur. Il est possible d'ignorer le code d'erreur d'une + commande avec nostop, e.g: + + 0 * * * * nostop command + + Cf aussi l'option --continuous pour modifier le comportement par défaut + == Fonctions disponibles == La fonction check_pidfile() est disponible, et permet de vérifier qu'une @@ -241,9 +252,12 @@ OPTIONS AVANCEES Changer le nombre d'heures pendant lesquelles on autorise le script a verrouiller l'exécution avant d'afficher un avertissement. -c, --continuous - Par défaut, ce script s'arrête à la première commande qui retourne avec - une code d'erreur. Avec cette option, ce script ne s'arrête jamais, bien - qu'il retourne toujours un code d'erreur si une erreur s'est produite. + Par défaut, ce script s'arrête à la première commande planifiée qui + retourne avec un code d'erreur. Notez que les codes d'erreur des + commandes sans planification sont toujours ignorés. Avec cette option, + ce script ne s'arrête jamais, bien qu'il retourne toujours un code + d'erreur si une erreur s'est produite. Il est possible d'ignorer le + code d'erreur pour une commande en particulier avec le préfixe nostop -k, --stopec EXITCODE[=101] Spécifier un code d'erreur spécial qui arrête ce script sans erreur, ou '' pour désactiver cette fonctionnalité. Ceci permet en début de script @@ -482,6 +496,15 @@ elif [ "$action" == "run" ]; then } function __ctexec() { local ec=0 + + local cmd="${1%% *}" + if [ "$cmd" == nostop ]; then + cmd="${1#nostop }" + shift + set -- "$cmd" "$@" + local continuous=1 + fi + if [ -n "$fake" ]; then echo "$*" else