C'est le programme cron
qui exécute périodiquement
les commandes spécifiées
dans /etc/crontab
et dans les crontabs des utilisateurs. La
Debian 1.3 possède en plus un mécanisme pour
exécuter les commandes de /etc/cron.daily
,
/etc/cron.weekly
et /etc/cron.monthly
, respectivement
tous les jours, toutes les semaines et tous les mois.
cron
est lancé par les scripts de démarrage mais
il change son PATH en une valeur assez étrange :
/usr/bin:/binn:/sbin:/bin:/usr/sbin:/usr/binIL S'AGIT SUREMENT D'UN BOGUE DANS CRON. Il s'agit en fait du PATH de init (
/usr/bin:/bin
) qui est copié ici, mais sans
le 0 terminal (chaîne en convention C - NdT)! Ce bogue n'existe pas
sur tous les systèmes.Dans la crontab, on peut définir un PATH spécifique pour l'exécution des commandes. Pour la Debian 1.3, il s'agit de :
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDe cette façon, le PATH de
crond
n'est jamais
utilisé dans les programmes utilisateurs. Tous les scripts de
/etc/cron.*
obtiennent par défaut le PATH
de la crontab. Celui ci est utilisé même si le programme n'est
pas exécuté en tant que root.La commande at
est utilisée pour lancer un programme
à une heure fixée.
Le programme atd
est lancé avec le PATH de init
.
Cependant, les programmes sont toujours lancés avec l'environnement
utilisateur grâce à sh
.
Les spécificités de sh
s'appliquent donc ici.
Reportez vous au chapitre sur bash
.