macOSで「at」が機能するようにする

macOSで「at」が機能するようにする

CentOSサーバーで作業しており、次のコマンドを使用してタスクをスケジュールしています。at

# echo "touch a_long_file_name_file.txt" | at now + 1 minute
job 2 at Wed Oct 31 13:52:00 2018

1分後、

# ls | grep a_long_file_name_file.tx
a_long_file_name_file.txt

ファイルが正常に作成されました。

しかし、macOSでローカルで実行すると

$ echo "touch a_long_file_name_file.txt" | at now + 1 minute
job 31 at Wed Oct 31 13:58:00 2018

数分後にそのファイルが生成されない場合。

atCentOSサーバーでバージョンを確認しました

AUTHOR:  
At was mostly written by Thomas Koenig, [email protected].  
2009-11-14                                             

これと比較して、macOSバージョンは

AUTHORS
     At was mostly written by Thomas Koenig <[email protected]>.  The time parsing routines are
     by
     David Parsons <[email protected]>, with minor enhancements by
     Joe Halpin <[email protected]>.

BSD                            January 13, 2002                            

私はそれがGNU coreutilsではないatことをatq発見しました。atrm

$ ls /usr/local/opt/coreutils/libexec/gnubin/ | grep at
cat
date
pathchk
realpath
stat
truncate

atmacOSに最新バージョンをインストールして動作させるにはどうすればよいですか?

ベストアンサー1

atmacOSで関連ツールを更新する代わりに、macOSのデフォルトツールが機能しようとしますat

macOSのドキュメントには次のatように記載されています(私が強調しています)。

実装ノート

これはデーモンへの定期的な呼び出しatによってlaunchd(8)行われますatrun(8)デフォルトでは無効atrun(8)有効化の詳細についてはを参照してくださいatrun

atrunマニュアルを確認してください。

説明する

このatrunユーティリティは待機中のコマンドを実行しますat(1)。プロパティリストlaunchd(8)で指定されているとおりに定期的に呼び出されますcom.apple.atrun.plist。デフォルトでは、プロパティリストにはtrueに設定されている無効なキーが含まれているためatrun呼び出されません。

有効にするには、rootとして次のコマンドを実行しますatrun

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

atおそらく、ここで何が起こっているのか、そして他の関連する質問を引き起こすのは、atrunmacOSのインストールでアクティブになっていないからだと思います。

launchctlmacOS Mojaveでは、上記のコマンドの実行(使用)に加えて、システムのセキュリティとプライバシー設定の「フルディスクアクセス」を使用してコマンド/アプリケーションのリストにsudo追加する必要があります。/usr/libexec/atrun私はこれがセキュリティに与える影響を知りません。個人的には、/usr/sbin/croncronジョブを機能させるためにそこにエントリも追加しました(他のコンピュータで作業しているため、下のスクリーンショットには表示されません)。

ここに画像の説明を入力してください。

/usrパスからコマンドを追加するには(macOSの[ファイルの選択]ダイアログボックスに表示されません)、[ファイルの選択]ダイアログボックスがCmd+Shift+G開いたら(ウィンドウの下部にあるプラスアイコン/ボタンを押した後)、キーを押します。

これらの変更を行った後、コンピュータを再起動する必要はありません。私はこれをmacOS Mojave 14.10.1でテストしました。

おすすめ記事