uscrontab: permettre d'ignorer le code d'erreur pour une commande planifiée

This commit is contained in:
Jephté Clain 2015-09-01 15:44:28 +04:00
parent aa989ef063
commit 8d2e3867f0
1 changed files with 26 additions and 3 deletions

View File

@ -95,6 +95,9 @@ Les lignes commençant par # sont des commentaires et sont ignorées
\$source path/to/file \$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 == == Planification de commandes ==
Les autres lignes doivent être au format d'une ligne de crontab: 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 5 1 * * * command1
command2 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 == == Fonctions disponibles ==
La fonction check_pidfile() est disponible, et permet de vérifier qu'une 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 Changer le nombre d'heures pendant lesquelles on autorise le script a
verrouiller l'exécution avant d'afficher un avertissement. verrouiller l'exécution avant d'afficher un avertissement.
-c, --continuous -c, --continuous
Par défaut, ce script s'arrête à la première commande qui retourne avec Par défaut, ce script s'arrête à la première commande planifiée qui
une code d'erreur. Avec cette option, ce script ne s'arrête jamais, bien retourne avec un code d'erreur. Notez que les codes d'erreur des
qu'il retourne toujours un code d'erreur si une erreur s'est produite. 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] -k, --stopec EXITCODE[=101]
Spécifier un code d'erreur spécial qui arrête ce script sans erreur, ou 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 '' pour désactiver cette fonctionnalité. Ceci permet en début de script
@ -482,6 +496,15 @@ elif [ "$action" == "run" ]; then
} }
function __ctexec() { function __ctexec() {
local ec=0 local ec=0
local cmd="${1%% *}"
if [ "$cmd" == nostop ]; then
cmd="${1#nostop }"
shift
set -- "$cmd" "$@"
local continuous=1
fi
if [ -n "$fake" ]; then if [ -n "$fake" ]; then
echo "$*" echo "$*"
else else