Я написал скрипт 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
$
Выглядит хорошо, как только вы его включите (предупреждение: может разрядить аккумулятор или драгоценные процессорные ресурсы...)