OSXをスリープから復帰させるcrontab


18

ある特定のプログラムを早朝(スリープ状態になった後)に起動し、朝遅くに(目を覚ます前に)再び閉じるcrontabがあります。しかし、私のiMacは、スリープ中にcrontabスクリプトを実行しません。

マシンをウェイクアップし、指定した時間に再びスリープ状態にする設定がいくつかありますが、crontabを使用してこれを行う方法はありますか?

回答:


27

cronコンピューターがスリープしている間は実行されないため、コンピューターをウェイクアップするためのcrontabエントリーを持つ方法はありません。つまり、[設定] >> [省エネルギー] >> [スケジュール]で、cronタスクの1〜2分前に起動するようにコンピューターをスケジュールできます。

また、AppleはTiger以来、ほとんどのスケジュールされたジョブcronをスクリプトからプロセスに移行していることを指摘する価値init.rcがありlaunchdます。より詳細な(しかし扱いにくいと思う)制御方法を(複数のplistファイルを使用して)提供します。また、コンピュータが起動したときにスリープ状態だったため、見逃したタスクを自動的に実行します。Appleの「Scheduling Timed Jobs」ページをご覧ください。


リンクが壊れています。
retracile

1
すばらしい答えですが、ラップトップを閉じたときに起動できますか?
ユーザー

4

スリープからの復帰をスケジュールする別の方法は、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ます。



2

あなたはアナクロンを調べたいかもしれません

Anacronは、マシン(ラップトップなど)がその時間の多くをスリープ状態にしたり電源を切ったりしても、Macで毎日、毎週、毎月の定期的なタスクを実行します。Anacronは、コンピューターの再起動時とコンピューターの実行中に60分ごとにサイレントでさまざまな定期的なスクリプトが期限切れになっているかどうかを確認し、必要に応じて実行します。この問題に対する他の多くのソリューションに対するAnacronの利点は、適切なUnixバックグラウンドプロセスとして実行され、ユーザーの介入を必要とせず、定期的なスクリプトを使用することです。

トリックを行う可能性のある別のアプリケーションは目覚めです


1

OSXがスリープモードの場合、cronは実行されません。

cronwake(サイトは日本語だと思うのでgoogle translateを実行する必要があります)とanacronを調べるか、Energy Saverアプリケーションを使用してスクリプトを実行するスリープ解除時刻をスケジュールしてから、スリープ状態に戻すことができます。

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