[mac]atコマンドが実行されない場合の対処法


cronの代わりにatコマンドを使ってみようと思いmacで試したのですが、指定時間になっても実行されないことにハマったのでメモ。

  • 以下のコマンドを実行後、指定時間まで待機
# 2014/09/20 20:00 に ~/test_command を実行
(日付は HH:mm DD.MM.YY 形式で指定)
at -f ~/test_command "22:00 20.09.14"
  • atqを実行したところ、指定時刻を超えたあともキューに残ったまま…
# atコマンドの未実行キューを確認
atq
11  Sat Sep 20 22:00:00 2014

もちろんコマンドは実行されていません。

どうやらmacのデフォルトではatコマンドの実行は無効設定になっているようです。

  • 以下を実行してatコマンドを有効化
sudo launchctl unload -F /System/Library/LaunchDaemons/com.apple.atrun.plist
sudo launchctl load -F /System/Library/LaunchDaemons/com.apple.atrun.plist

その後、再度試したらうまく実行されました。

atコマンドは日付の指定に少し戸惑いますね。

参考