This commit is contained in:
Jephté Clain 2014-08-19 11:20:02 +04:00
parent cd0bb344d7
commit 5d75e57f54
1 changed files with 19 additions and 12 deletions

View File

@ -15,21 +15,26 @@ La première forme du script doit normalement être lancé toutes les minutes pa
une tâche cron. Utiliser l'option --install pour ajouter automatique la ligne une tâche cron. Utiliser l'option --install pour ajouter automatique la ligne
dans la crontab de l'utilisateur. dans la crontab de l'utilisateur.
Si aucun fichier n'est spécifié, fusionner s'il existe le fichier Avec la première forme du script, le fichier spécifié est traité. Si aucun
fichier n'est spécifié, fusionner s'il existe le fichier
$USCRONTAB_USERFILE $USCRONTAB_USERFILE
avec chacun des fichiers du répertoire avec chacun des fichiers du répertoire
$USCRONTAB_USERDIR $USCRONTAB_USERDIR
puis exécuter le fichier résultat avec le nom virtuel dans un fichier temporaire, puis exécuter le fichier résultat avec le nom
virtuel
$USCRONTAB_USER $USCRONTAB_USER
note: le nom virtuel est utilisé pour le verrouillage avec --lock note: le nom virtuel est utilisé pour le verrouillage avec --lock
A chaque lancement du script, il examine quels scripts doivent être exécutés A chaque lancement du script, le fichier crontab spécifié est examiné pour
dans le fichier crontab spécifié. Ce fichier est composé de lignes dans un déterminer quels scripts doivent être exécutés. Ce fichier est composé de lignes
format particulier, qui sont analysées et traitées dans l'ordre. dans un format particulier, qui sont analysées et traitées dans l'ordre.
Quelles que soient les lignes qui sont sélectionnées pour le lancement, elles Quelles que soient les lignes qui sont sélectionnées pour le lancement, elles
sont garanties de s'exécuter dans l'ordre du fichier, l'une après l'autre. sont garanties de s'exécuter dans l'ordre du fichier, l'une après l'autre.
Les définitions var=value mentionnées sur la ligne de commande sont des
définitions de variables à effectuer avant de lancer les scripts.
Les lignes commençant par # sont des commentaires et sont ignorées Les lignes commençant par # sont des commentaires et sont ignorées
== Définitions de variables et exécution de commandes == == Définitions de variables et exécution de commandes ==
@ -69,8 +74,8 @@ Les lignes commençant par # sont des commentaires et sont ignorées
var?=default var?=default
Les lignes de la forme suivante permettent d'exécuter une commande Les lignes de la forme suivante permettent d'exécuter une commande qui est
quelconque: exécutée systématiquement et ignore la planification:
\$one-line-command \$one-line-command
@ -174,7 +179,8 @@ OPTIONS
-A, --install -A, --install
Installer une planification toutes les minutes du script dans la crontab Installer une planification toutes les minutes du script dans la crontab
de l'utilisateur. Si l'argument /path/to/crontab n'est pas spécifié, de l'utilisateur. Si l'argument /path/to/crontab n'est pas spécifié,
c'est une planification générique qui exécute les fichiers par défaut. c'est une planification générique qui exécute les fichiers par défaut
qui est installée.
-R, --uninstall -R, --uninstall
Désinstaller la planification toutes les minutes du script du crontab de Désinstaller la planification toutes les minutes du script du crontab de
l'utilisateur. Si l'argument /path/to/crontab est spécifié, cette l'utilisateur. Si l'argument /path/to/crontab est spécifié, cette
@ -272,7 +278,7 @@ if [ "$action" == "edit" ]; then
fi fi
enote "Edition de $crontab" enote "Edition de $crontab"
if [ ! -f "$crontab" ]; then if [ ! -f "$crontab" ]; then
touch "$crontab" touch "$crontab" || die
chmod 640 "$crontab" chmod 640 "$crontab"
fi fi
"${EDITOR:-vi}" "$crontab" "${EDITOR:-vi}" "$crontab"
@ -391,9 +397,10 @@ elif [ "$action" == "run" ]; then
echo "$*" echo "$*"
else else
edebug "$*" edebug "$*"
if [ "${1#check_pidfile }" != "$1" ]; then if [ "${1#check_pidfile }" != "$1" -o "${1#remove_pidfile }" != "$1" ]; then
# cas particulier, c'est une fonction à exécuter dans le # cas particulier: les fonctions check_pidfile() et
# contexte courant, et non pas dans un sous-shell # remove_pidfile() doivent être exécutée dans le contexte
# courant, et non pas dans un sous-shell
eval "$*"; ec=$? eval "$*"; ec=$?
else else
(eval "$*"); ec=$? (eval "$*"); ec=$?