Como uso `at` para agendar a execução de um script no macOS?

Como uso `at` para agendar a execução de um script no macOS?

Escrevi um script Python que preciso executar em um determinado momento após a execução de outro script. Encontrei o atcomando e, depois de pesquisar um pouco, tentei o seguinte (dividido em várias linhas para facilitar a leitura):

/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

Isso executou o script imediatamente. Então eu tentei

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

Mas a hora chegou e passou e o script não foi executado. Após o acima, at -lgera o seguinte:

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

Isso está no macOS High Sierra. O atutilitário certo para isso? Se sim, como posso fazer o que quero aqui?

Responder1

Vejamos, no Mac OS X (já que este hardware é muito antigo para rodar macOS) mais commyatporque nunca consigo lembrar o formato da data atdesejado...

$ 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
$ 

...por que tem um emprego de 2016 por aí??

$ 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
$ 

Uhhhh ... talvez a página de manual atajude?

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.

Enquanto isso, atrun(8)encontramos...

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

Poxa. Vamos tentar isso...

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

E então esperamos um ou dois minutos...

$ atq
$ ls *atran
nananananananananananananananana-atran
$ 

Parece bom quando você o liga (o aviso pode esgotar a bateria ou fatias preciosas da CPU...)

informação relacionada