
他のスクリプトが実行されてからしばらくして実行する必要がある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
それから1〜2分待ちます。
$ atq
$ ls *atran
nananananananananananananananana-atran
$
オンにするとよさそうです(バッテリーや貴重なCPUチップが消耗する可能性があるという警告...)