@niha28niwa

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

pmset schedule wakeorpoweronで Deep Idle状態のスリープから復帰するには

解決したいこと

pmset schedule wakeorpoweronで
Deep Idle状態のスリープから復帰する。

OSなど

  • MacBook Pro2020
  • macOS Sequoia15.6
  • AC接続状態

状況

LaunchDaemonを使用して、
pythonファイルの定時実行を実現しようとしています。

pythonファイルの実行、
pmset schedule wakeorpoweronによるスリープ予約は機能しております。

pmset -g schedで予約があることを確認しているのですが、
予約時間になってもスリープから復帰しません。

対象時間の起動ログを調べると、何も出力されない状態になっております。

自分で試したこと−1

浅いスリープ状態だと、予約した時間にスリープから復帰できました。
15秒後や30秒後などです。

1〜3分後になると、スリープ復帰ができず、
その状態で手動でスリープから復帰すると
「Wake from Deep Idle」状態でした。

そのため何かしらの設定でDeep Idle状態から復帰できないようになっているのではないかと考えました。

自分で試したこと−2

以下の設定を変更してテストしてみたのですが、
スリープから復帰ができませんでした。

  • standby、hibernatemode 、autopoweroff を0に変更
  • acwake を1に変更

その他

Macのpmsetの仕様を見ても、スリープ復帰における制限の記載が見当たらず
同じような症状の記事も見つからず、
どうしてスリープから復帰できないのか、なにが原因なのかまったくわかっておりません。

0 likes

3Answer

難易度は上がりますがlaunchdを試しては如何でしょうか?
.plistを書くのが大変面倒ですが、systemdのような扱いは出来ます(ただ似てはいません)。
「macos launchd 定期実行」で検索すると色々と記事や便利ツールが出てきます。

0Like

Comments

  1. 「LaunchDaemonを使用して…定時実行を実現しようとしています」とのことなのですでに利用されているかと。

  2. @niha28niwa

    Questioner

    @STSynthe
    @uasi
    ご回答ありがとうございます。
    @uasi様が記載してくださった通り、現在LaunchDaemonを利用しております!

    LaunchDaemon自体は、Macがスリープ状態では実行されないという認識なのですが、
    LaunchDaemonの設定に、スリープ解除ができるような設定があるという事でしょうか?

  3. Macがスリープ状態では実行されない

    当方の環境が古い(10.15系)ため完全に同じとは言えません。が、その認識で合っていると思います。

    一応launchdでインターバルで定期実行するPythonをコチラでも試してましたが、止まります。
    これはpmset、GUIの省エネルギー設定で「スリープさせない」にチェックが有ろうが無かろうがどちらも同じ結果でした。
    システムのデーモンにしたら変わるのかまではちょっと試していませんが、同じ結果になりそうなのでしていません。

    ただコンソールでcaffeinateを走らせっぱなしにすることで、止まる現象を回避できたことを確認しています。


    pmset -a disablesleep 1でも止まらないことを確認していますが、文字通りスリープを無効にするだけあって、スリープ自体まったく発生しなくなる点に留意してください。

    caffeinatepmsetどちらにしてもスリープ下でスケジュール管理は難しいと思われますので妥協するべきです。

Comments

  1. @niha28niwa

    Questioner

    そうだったのですね...!
    存じませんでした、ありがとうございます🙇

そもそもスリープさせないという方針は取れますか? AC 接続中はディスプレイだけ切って本体をスリープさせないように電源設定すれば定期実行は実現できそうです。

0Like

Comments

  1. @niha28niwa

    Questioner

    可能であれば、スリープ状態でも wakeorpoweron で起きてくれる状態が理想ではあります。
    ですが、どうにもならない場合は、AC接続中はスリープさせないという設定も視野に入れて検証いたします。
    ご回答ありがとうございます!

Your answer might help someone💌