Как использовать `at` для планирования выполнения скрипта в macOS?

Как использовать `at` для планирования выполнения скрипта в macOS?

Я написал скрипт Python, который мне нужно выполнить в определенное время после запуска другого скрипта. Я нашел команду atи, немного покопавшись, попробовал следующее (разбил на несколько строк для удобства чтения):

/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

Это немедленно запустило скрипт. Поэтому я попробовал

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

Но время пришло и прошло, а скрипт не выполнился. После вышесказанного at -lвыводит следующее:

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

Это на macOS High Sierra. atПравильная ли утилита для этого? Если да, как мне заставить ее делать то, что я хочу здесь?

решение1

Давайте посмотрим, на Mac OS X (так как это оборудование слишком старое для работы macOS) плюс сmyatпотому что я никогда не могу запомнить нужный мне формат даты 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
$ 

...почему висит вакансия 2016 года??

$ 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поможет?

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.

Тем временем atrun(8)мы находим...

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

Боже. Давайте попробуем...

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

И затем мы ждем минуту или две...

$ atq
$ ls *atran
nananananananananananananananana-atran
$ 

Выглядит хорошо, как только вы его включите (предупреждение: может разрядить аккумулятор или драгоценные процессорные ресурсы...)

Связанный контент