私はcrontabを使用して、特定のプログラムを朝早く(寝てから)起動し、朝遅くに(起床する前に)閉じます。しかし、私のiMacは、スリープしている間はcrontabスクリプトを実行しません。
マシンをウェイクアップし、指定した時間に再度スリープさせる設定があるようですが、crontabを使用してこれを行う方法はありますか?
cron
は、コンピューターがスリープしている間は実行されないため、コンピューターをスリープ解除するためのcrontabエントリーを作成する方法はありません。そうは言っても、「設定」>「エネルギー節約」>「スケジュール」で、cronタスクの1分か2分前に起動するようにコンピューターをスケジュールできます。
Tiger以降、Appleがほとんどのスケジュールされたジョブをcron
およびinit.rc
をlaunchd
プロセスに追加します。これは、(いくつかのplistファイルを介して)より詳細な(しかし扱いにくいと思います)制御手段を提供します。また、コンピューターが目覚めたときにコンピューターがスリープ状態だったために実行されなかったタスクを自動的に実行します。 Appleの Scheduling Timed Jobs ページを見てください。
スリープからのウェイクアップをスケジュールするもう1つの方法は、pmsetを使用することです。
Sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00
launchdはコンピュータをスリープ状態から復帰させることはできませんが、スリープ状態から復帰した後にスケジュールされたジョブを実行します。他の人がそれを行う方法を検索する場合、たとえば、このplistを~/Library/LaunchAgents/some.label.plist
として保存できます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>some.label</string>
<key>ProgramArguments</key>
<array>
<string>say</string>
<string>a</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>23</integer>
<key>Minute</key>
<integer>59</integer>
</dict>
</dict>
</plist>
次に、launchctl load ~/Library/LaunchAgents/some.label.plist
を実行します。
省エネルギー設定パネルで、Macintoshが起動するようにスケジュールできます。 「スケジュール」ボタンを参照してください。
あなたは調べたいかもしれません Anacron
Anacronは、マシン(ラップトップなど)がスリープ状態またはスイッチオフ状態の時間の多くを費やしている場合でも、Macで定期的な毎日、毎週、および毎月のタスクを実行します。 Anacronは、コンピューターの実行中に再起動したときと60分ごとに静かにチェックして、さまざまな定期的なスクリプトが期限切れかどうかを確認し、必要に応じて実行します。この問題に対する他の多くのソリューションに対するAnacronの利点は、適切なUnixバックグラウンドプロセスとして実行され、ユーザーの介入を必要とせず、通常の定期的なスクリプトを使用します。
トリックを行う可能性のある別のアプリケーションは 覚醒 です。