Wie verwende ich „at“, um die Ausführung eines Skripts unter macOS zu planen?

Wie verwende ich „at“, um die Ausführung eines Skripts unter macOS zu planen?

Ich habe ein Python-Skript geschrieben, das ich zu einem bestimmten Zeitpunkt ausführen muss, nachdem ein anderes Skript ausgeführt wurde. Ich habe den atBefehl gefunden und nach einigem Suchen Folgendes ausprobiert (der Lesbarkeit halber in mehrere Zeilen aufgeteilt):

/private/var/folders/w9/6q0rjl6n4yv859fpxbg4123w0000gn/T/S10/fm-git.py
--filename chiv-lib --repository /Users/chuck/Projects/chivalry/chiv-lib/
--path Chivalry/ --comment "test" | at 2:52pm

Das Skript wurde sofort ausgeführt. Also versuchte ich

at 2:53pm
> /private/var/folders/w9/6q0rjl6n4yv859fpxbg4123w0000gn/T/S10/fm-git.py
> --filename chiv-lib --repository /Users/chuck/Projects/chivalry/chiv-lib/
> --path Chivalry/ --comment "test"
> ^D

Aber die Zeit verging und das Skript wurde nicht ausgeführt. Nach dem obigen Vorgang at -lwird Folgendes ausgegeben:

13  Mon Nov 27 02:53:00 2017
12  Mon Nov 27 14:52:00 2017

Dies ist auf macOS High Sierra. Ist das atdas richtige Dienstprogramm dafür? Wenn ja, wie kann ich es dazu bringen, das zu tun, was ich hier will?

Antwort1

Mal sehen, auf Mac OS X (da diese Hardware zu alt ist, um macOS auszuführen) plus mitmyatweil ich mir nie das gewünschte Datumsformat merken kann at...

$ date
domingo, 26 de noviembre de 2017, 16:34:12 PST
$ myat 16:36
touch $HOME/nananananananananananananananana-atran
job 2 at Sun Nov 26 16:36:00 2017
$ atq
1       Wed Mar  9 08:00:00 2016
2       Sun Nov 26 16:36:00 2017
$ 

... warum liegt da ein Job aus dem Jahr 2016 rum??

$ date
domingo, 26 de noviembre de 2017, 16:36:33 PST
$ atq
1       Wed Mar  9 08:00:00 2016
2       Sun Nov 26 16:36:00 2017
$ 

atÄhhhh … vielleicht hilft die Manpage ?

IMPLEMENTATION NOTES
     Note that at is implemented through the launchd(8) daemon periodically
     invoking atrun(8), which is disabled by default.  See atrun(8) for infor-
     mation about enabling atrun.

Inzwischen atrun(8)finden wir hier...

 Execute the following command as root to enable atrun:
       launchctl load -w
       /System/Library/LaunchDaemons/com.apple.atrun.plist

Meine Güte. Lass es uns versuchen ...

$ sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

Und dann warten wir etwa ein oder zwei Minuten ...

$ atq
$ ls *atran
nananananananananananananananana-atran
$ 

Sieht gut aus, sobald Sie es einschalten (Achtung, kann den Akku oder wertvolle CPU-Speicherplätze belasten ...)

verwandte Informationen