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
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