別のスクリプトの実行後、特定の時間に実行する必要がある 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
$
うーん... の man ページが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 スライスが消耗する可能性があります...)