OS X:組み込みのスケジューラプログラムはありますか?


10

将来の特定の日時にパラメーターを指定して実行するタスクをスケジュールしたいのですが。

OS Xにはそのようなツールが含まれていますか(コマンドラインであっても)?そうでない場合、これを達成するための無料または比較的安価なツールはありますか?

回答:


14

キースBの答えは正しいですが、実際にcron OS X固有のものを 支持して廃止されていlaunchdます。

経由で実行されるコマンドlaunchdは、実際には単なるXMLファイルであるAppleの「リスト」またはプロパティリストに記述されています。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.
com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>  
    <key>Label</key>
    <string>com.apple.periodic-daily</string>
    <key>ProgramArguments</key>
    <array> 
        <string>/usr/sbin/periodic</string>
        <string>daily</string>
    </array>
    <key>LowPriorityIO</key>
    <true/>
    <key>Nice</key>
    <integer>1</integer>
    <key>StartCalendarInterval</key>
    <dict>  
        <key>Hour</key>
        <integer>3</integer>
        <key>Minute</key>
        <integer>15</integer>
    </dict>
</dict>
</plist>

そうは言っても、コマンドの実行をスケジュールするのは、あまりユーザーフレンドリー(またはMacのような)な方法ではありません。SuperUserに関するこの質問には、次のようなGUIの代替案がいくつかリストされています。

Lingon Screencap

launchd Editor($ 5シェアウェア)

画面キャプチャ


3
launchdが「独自仕様」であることは、公平な特徴付けではありません。Appleはlaunchd.macosforge.orgで熱心にオープンソース化し、FreeBSDに移植されました。
ohmantics

@ohmantics:わかりました。「特定の」より良い説明ですか?
Josh

十分近い。:-) Appleが作成しましたが、BSDのようなOSで広く採用されると思います。
ohmantics

@calavera:編集ありがとうございます。そのように主要なウェブサイトのドキュメントが削除されると、私はそれを嫌います。悲しいことに関連性が低い新しいリンクを追加しました。cron非推奨であることは具体的には言及されていません:-(
Josh

np ...残念ながらAppleはたくさんやっているようです:/
Robert S Ciaccio 2010

4

単純なものだけが必要な場合は、iCalでAutomatorワークフローを開始することもできます。それ以外の場合は、launchdを使用して行います。


iCalの唯一の問題は、タスクを実行するためにログインする必要があることです(正しいですか?)
Josh

はい、これを行うにはログインする必要があると思います。私はこの上のlaunchdプロセスをお勧めしますが、一部の人はいうだけのiCalを使用し、常にに記録されます。
jmlumpkin

iCalははるかに簡単なソリューションです!私が投稿したスクリーンキャップをご覧ください。私は彼らがどのように威嚇することができるかを確かに見ることができます:-)
ジョシュ

明確にするために、スクリーンショットはlaunchdの設定用ですよね?
jmlumpkin

2

あなたが望むことをする2つのUnixコマンドラインツールがあります。 at将来の特定の時間に一度実行するタスクをスケジュールすることができます。もちろん、タスクの一部は別のタスクをスケジュールすることです。

cron 時刻、曜日などに基づいて、タスクを同時に定期的に実行するようにスケジュールできます。

注意すべきことの1つは、スケジュールされた時間にマシンが稼働していない場合、これらの両方がタスクを実行しないことです。次回マシンが起動したときにスケジュールされたタスクを実行するanacronなどの代替手段があります。


1
デフォルトでは、「at」コマンドは無効になっていることに注意してください。「man atrun」を使用して、それを有効にする方法を見つけます。
クリストファージョンソン

2

iCalはAppleScriptsの実行、アプリケーションの起動、スケジュールに沿ったタスクの実行に使用できます

iCalの使用には制限がありますが、iCalはMac OS Xに含まれており、セットアップは比較的簡単です。上記のリンクには、スケジュールされたAppleScriptの設定方法に関する制限事項と視覚的なウォークスルーが含まれています。

Mac OS XのiCalでスケジュールされたAppleScriptを設定する

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.