web-dev-qa-db-ja.com

Mac OS X:atコマンドが機能しない

Atコマンドを使用してジョブをスケジュールします。ここで私は次のコマンドを試しました:

$ at now + 1 minute
echo 'Test at command'
<EOD>

At -lを使用してジョブがスケジュールされていることを確認しました。しかし、エコーアウトは見られませんでした。

At.allowファイルにユーザーを追加する必要があるかもしれません。 Mac(Snow Leopard)でat.allowが見つかりません。これをコマンドでテストするために何をする必要があるのか​​わかりませんか?

42
David.Chu.ca

必要なatrunデーモンを有効にするには、man atrunが言うように、以下を実行します。

launchctl load -w /System/Library/LaunchDaemons/com.Apple.atrun.plist

ルートとして(例:Sudo経由)。これが完了すると、/var/at/がキーディレクトリになります(最も簡単な方法は、ルートとしてatを使用することです-たとえば、Sudoによってもう一度!) 。

40
Alex Martelli

Snow Leopardでは、次のことを行う必要があります。

  1. /System/Library/LaunchDaemons/com.Apple.atrun.plistを編集し、無効化された子ノードをtrue-> falseから変更します。

  2. 現在の/System/Library/LaunchDaemons/com.Apple.atrun.plistをアンロードします。

    Sudo launchctl unload -F /System/Library/LaunchDaemons/com.Apple.atrun.plist
    

    次に、編集したバージョンをロードします

    Sudo launchctl load -F /System/Library/LaunchDaemons/com.Apple.atrun.plist
    
  3. それが動作することをテストします。

    echo blah | at now+1
    
  4. エコーが別の理由で失敗した場合、少なくともキューがクリアされるのを見ることができるはずです:

    atq
    
13
Somantra

私はOS X Lionでこれを試してみましたが、うまくいったようです。

最初にatrunデーモンを有効にします。

launchctl load -w
/System/Library/LaunchDaemons/com.Apple.atrun.plist

次に、[ユーザー名]を/var/at/at.allowに追加します。

実行すると、/var/mail/[your username]で出力を受け取ります

batchのキューアイテムは、実際に実行されるまでに数分かかることがわかりました。

5
chris838

atがMac OS Xで無効にされると他の人から返信があり、私はそれについては知りませんが、別の問題があります:echoコマンドでメッセージを出力しますか?私が使用した他のUnixシステムでは、notは、atコマンド。 atジョブを実行すると、ログインしなくなった可能性があることに注意してください。

代わりに何かをファイルに書き込んでみて、そのファイルが適切なタイミングで表示されるかどうかを確認してください。

OS X(10.4)の私のインストールはman at

注
 Mac OS Xでは、デフォルトでat、batch、atq、atrmがすべて無効になっています。

指示に従ってatrunを有効にしましたか?

0
Greg Hewgill