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/bin
IL 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/bin
De 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.