Der atd-Daemon
Der atd-Daemon ermöglicht es Benutzern, Aufträge zu einem späteren Zeitpunkt auszuführen, z. B. „um 2:00 Uhr“. Um den atd-Daemon verwenden zu können, muss er laufen. Benutzer können bestätigen, dass atd ausgeführt wird, indem sie einfach eine Liste der laufenden Prozesse untersuchen:
$ 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
Beachten Sie, dass die siebte Spalte angibt, welchem Terminal ein Prozess zugeordnet ist. Für den grep-Befehl von Blondie ist das Terminal pts/2, was sich wahrscheinlich auf eine Netzwerk-Shell oder ein grafisches Terminal innerhalb einer X-Sitzung bezieht. Beachten Sie, dass der atd-Daemon kein zugehöriges Terminal hat. Eines der charakteristischen Merkmale eines Daemons ist, dass er seine Verbindung mit dem Terminal, das ihn gestartet hat, aufgibt.
Übermittlung von Jobs mit at
Der at-Befehl wird verwendet, um Jobs an atd zu senden Daemon, der zu einem bestimmten Zeitpunkt ausgeführt werden soll. Die auszuführenden Befehle werden entweder als Skript (mit dem Befehlszeilenschalter -f) übermittelt oder direkt über stdin eingegeben. Der Standardausgang des Befehls wird an den Benutzer gesendet.
at [-f filename | -m] TIME
Wechseln | Effekt |
---|---|
-f Dateiname | Führen Sie das durch den Dateinamen | angegebene Skript aus
-m | Benachrichtigen Sie den Benutzer per E-Mail, wenn Sie fertig sind, auch wenn es keine Ausgabe gibt. |
Die Tageszeit kann mit HH:MM mit angehängtem „am“ oder „pm“ angegeben werden. Die Begriffe „Mitternacht“, „Mittag“ und „Teezeit“ können ebenfalls verwendet werden. (Sie haben richtig gelesen, „Teatime“.) Ein Datum kann auch in mehreren Formaten angegeben werden, einschließlich MM/TT/JJ. Die Manpage at(1) bietet viele weitere Details.
Der Wrestler Hogan möchte eine Datei ausdrucken, die die gesamte Fanpost enthält, die er erhalten hat, fanmail.txt. Er ist jedoch etwas besorgt, weil er sich den Drucker mit Ventura teilt, die den Drucker auch viel benutzt. Um einen Kampf zu vermeiden, beschließt Hogan, seinen Druck auf 2:00 Uhr morgens zu verschieben.
$ 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
Weil hogan das -f nicht verwendet hat Befehlszeilenschalter, der Befehl at forderte Hogan auf, seine Befehle mit stdin (der Tastatur) einzugeben. Glücklicherweise weiß hogan, dass STRG-D, wenn es direkt von einem Terminal eingegeben wird, ein „Dateiende“ anzeigt. Alternativ hätte er den Befehl auch direkt in stdin leiten können:
$ 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
Als nächstes bestätigt Hogan, dass sein Job mit atq registriert wurde.
$ atq 7 2003-06-17 02:00 a hogan
Schließlich erinnert sich Hogan daran, dass Ventura im Urlaub ist, damit er seine Fanpost ohne Zwischenfälle drucken kann. Er beschließt, seinen Job zu stornieren und die Datei direkt auszudrucken.
$ atrm 7 $ atq $ lpr fanmail.txt
Aufgaben per Batch verzögern
Der Stapel Der Befehl wird wie der at-Befehl verwendet, um Aufgaben auf einen späteren Zeitpunkt zu verschieben. Im Gegensatz zum at-Befehl führt Batch den Befehl nicht zu einem bestimmten Zeitpunkt aus, sondern wartet stattdessen, bis das System nicht mit anderen Aufgaben beschäftigt ist, wann immer diese Zeit sein mag. Wenn der Computer nicht ausgelastet ist, wenn der Job gesendet wird, wird der Job möglicherweise sofort ausgeführt. Der atd-Daemon überwacht den Loadavg des Systems und wartet darauf, dass er unter 0,8 fällt, bevor er den Job ausführt.
Der Batch-Befehl hat eine identische Syntax wie der at-Befehl, wobei Jobs entweder mit stdin angegeben oder als Batch-Datei mit -f übermittelt werden können Befehlszeilenschalter. Wenn eine Zeit angegeben ist, verzögert Batch die Beobachtung der Maschine bis zur angegebenen Zeit. Zu diesem Zeitpunkt beginnt Batch mit der Überwachung des Loadavg des Systems und führt den Job aus, wenn das System nicht anderweitig ausgelastet ist.