Como uso 'at' para agendar um script para executar no macOS?

1

Eu escrevi um script Python que preciso executar em um determinado momento após a execução de outro script. Eu encontrei o comando at , e depois de um pouco de escavação, eu 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 o script não foi executado. Após o acima, at -l gera 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 at é a utilidade certa para isso? Se sim, como posso fazê-lo para fazer o que quero aqui?

    
por Chuck 27.11.2017 / 00:01

1 resposta

1

Vamos ver, no Mac OS X (como esse hardware é muito antigo para executar o macOS), mais com myat porque eu nunca consigo lembrar o formato de data at quer ...

$ 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 há um emprego a partir de 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
$ 

Uhhhh ... talvez a página man do at ajude?

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, em atrun(8) , encontramos ...

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

Puxa. Vamos tentar isso ...

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

E depois esperamos um minuto ou dois ...

$ atq
$ ls *atran
nananananananananananananananana-atran
$ 

Parece bom quando você ligá-lo (aviso pode drenar a bateria ou preciosas fatias de cpu ...)

    
por 27.11.2017 / 01:52

Tags