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


42

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

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

-lを使用してジョブがスケジュールされているのを見ました。しかし、エコーは見られませんでした。

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


私は人からの情報を読もうとしました。「ファイル_PERM_PATH / at.allowが存在する場合、そこに記載されているユーザー名のみがat ...を使用できます。...at.allowが存在しない場合、_PERM_PATH / at.denyがチェックされます。」I _PERM_PATHが何であるかわかりません。

Apple OSX Leopardの場合、「at」のPERM_PATHは/ usr / lib / cronです。
リチャードホスキンズ

Mac OS X Lionの場合/var/at
ステファンシュミット

回答:


40

必要なatrunデーモンを有効にするにman atrunは、次のように実行します:

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

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


atrunデーモンを有効にするためにrootになる必要があることは知っていますが、「at」コマンドを実行するためにrootになる必要はありません。(これらのコマンドにルートが必要な場合を除きます。)
リチャードホスキンズ

1
このアクティベーションまたはアトランは再起動後も存続しますか?
エリックOレビゴット

マニュアルページによると、はい、しかし私は試していません。
ステファンシュミット

1
/var/at/at.deny空の場合は、ジョブでキューに入れるためにルートである必要はありません/var/at/at.allow。そうでない場合は、にユーザー名を追加できます。
ステファンシュミット

最初にマニュアルページを読む必要があります...ありがとう!
ポリム

13

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
    

1
これはOSX 10.10 Yosemiteで私のために働いた唯一のものです。
コリンディーン14年

5

OS X Lionでこれを試したところ、うまくいったようです。

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

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

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

実行すると、次の場所に出力が表示されます /var/mail/[your username]

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


2

他の人はMac OS Xで無効にさていると答えており、それについては知りませんが、別の問題があります:echoコマンドがメッセージを出力する場所はどこですか?私が使用した他のUnixシステムでは、atコマンドを指定したのと同じシェルウィンドウに印刷されませ。ときことを覚えておいてくださいジョブが実行され、あなたも、それ以上に記録されない場合があります。

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


manページには、出力がメールで送信されることが記載されています。
ステファンシュミット

@Stefan:はい、1980年代には同じマシンでローカルにメールが処理されていましたが、私の経験(Mac OS X以外のUnixの場合)では、今日ではメールを受け取ることは期待できません。
トーマスパドロン-マッカーシー

0

OS X(10.4)の私のインストールは次のように言っていman atます:

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

atrunそこの指示に従って有効にしましたか?


Macのどこで実行されているかを見つけようとしました。Webからの別のオプションは、ユーザーをat.allowに追加することです。このファイル(at.allow)も見つかりませんでした。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.