Le démon atd
Le démon atd permet aux utilisateurs de soumettre des tâches à exécuter ultérieurement, par exemple « à 2 h 00 ». Pour utiliser le démon atd, il doit être en cours d'exécution. Les utilisateurs peuvent confirmer qu'atd est en cours d'exécution simplement en examinant une liste de processus en cours d'exécution :
$ ps aux | grep atd daemon 4730 0.0 0.2 1420 532 ? S 15:42 0:00 /usr/sbin/atd madonna 5570 0.0 0.2 3572 640 pts/2 S 16:43 0:00 grep atd
Notez que la septième colonne spécifie à quel terminal un processus est associé. Pour la commande grep de blondie, le terminal est pts/2, qui fait probablement référence à un shell réseau ou à un terminal graphique dans une session X. Notez que le démon atd n'a pas de terminal associé. L'une des caractéristiques déterminantes d'un démon est qu'il abandonne son association avec le terminal qui l'a lancé.
Soumettre des travaux avec à
La commande at est utilisée pour soumettre des travaux à atd démon à exécuter à un moment précis. Les commandes à exécuter sont soit soumises sous forme de script (avec le commutateur de ligne de commande -f), soit saisies directement via stdin. La sortie standard de la commande est envoyée par courrier à l'utilisateur.
at [-f filename | -m] TIME
Changer | Effet |
---|---|
-f nom_fichier | exécuter le script spécifié par filename |
-m | Notifiez l'utilisateur par e-mail lorsque vous avez terminé, même s'il n'y a pas de sortie. |
L'heure de la journée peut être spécifiée en utilisant HH:MM, suffixé par "am" ou "pm". Les termes « minuit », « midi » et « l'heure du thé » peuvent également être utilisés. (Vous avez bien lu, "l'heure du thé".) Une date peut également être spécifiée en utilisant plusieurs formats, y compris MM/JJ/AA. La page de manuel at(1) fournit beaucoup plus de détails.
Le catcheur hogan aimerait imprimer un fichier contenant tous les mails de fans qu'il a reçu, fanmail.txt. Il est un peu inquiet, cependant, car il partage l'imprimante avec ventura, qui utilise également beaucoup l'imprimante. Voulant éviter une bagarre, Hogan décide de retarder son impression jusqu'à 2h00 du matin.
$ at 2:00 am warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh at> lpr fanmail.txt at> CTRL-D job 7 at 2020-06-17 02:00
Parce que Hogan n'a pas utilisé le -f commutateur de ligne de commande, la commande at a invité Hogan à saisir ses commandes à l'aide de stdin (le clavier). Heureusement, Hogan sait que CTRL-D, lorsqu'il est saisi directement depuis un terminal, indique une « fin de fichier ». Alternativement, il aurait pu diriger la commande directement dans stdin :
$ echo "lpr fanmail" | at 2:00 am warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh job 7 at 2003-06-17 02:00
Ensuite, hogan confirme que son travail a été enregistré à l'aide d'atq.
$ atq 7 2003-06-17 02:00 a hogan
Enfin, Hogan se souvient que Ventura est en vacances, il peut donc imprimer son courrier de fan sans incident. Il décide d'annuler son travail et d'imprimer directement le fichier.
$ atrm 7 $ atq $ lpr fanmail.txt
Retarder les tâches avec le lot
Le lot La commande, comme la commande at, est utilisée pour reporter des tâches à une date ultérieure. Contrairement à la commande at, batch n'exécute pas la commande à une heure précise, mais attend à la place que le système ne soit pas occupé par d'autres tâches, quelle que soit l'heure. Si la machine n'est pas occupée lorsque le travail est soumis, le travail peut s'exécuter immédiatement. Le démon atd surveille la loadavg du système et attend qu'elle tombe en dessous de 0,8 avant d'exécuter la tâche.
La commande batch a une syntaxe identique à la commande at, où les travaux peuvent soit être spécifiés à l'aide de stdin, soit soumis sous forme de fichier batch avec le -f commutateur de ligne de commande. Si une heure est spécifiée, le lot retardera l'observation de la machine jusqu'à l'heure spécifiée. À ce moment-là, le lot commencera à surveiller la charge moyenne du système et exécutera la tâche lorsque le système n'est pas autrement occupé.