M1、M2、M3、M4などのApple シリコンMacで、
スリープが勝手に解除されてしまう問題の解決方法です。
なぜか一般的な解決方法では解決しない…
Macのスリープが勝手に解除される問題は、Appleも把握しているようで、
Appleの公式サイトMacユーザガイドにも解決方法は掲載されています。
Macが突然スリープまたはスリープ解除する場合
スリープ設定、共有設定、システムアクティビティ、およびほかに可能性のある原因を確認します。
Macのスリープ/スリープ解除を設定する
Macがスリープ/スリープ解除される時間を設定します。
しかし、私の環境下では解決しませんでした。
本体:Mac mini M4
macOS:Sequoia(15.2)
解決方法:ターミナルでコマンドを実行する
結果から言うと、この方法で解決することができました。
- STEP.1
ターミナル.appを起動させる。
- STEP.2コマンド入力
sudo pmset -a tcpkeepalive 0
パスワードを効かれるので、ユーザーパスワードを入力します。
(入力しても文字が表示されませんがそれでOKです)sudo pmset -a powernap 0
以上。
私の環境では、これで解決しました。
注意点
「Macを探す」機能が実質的に無効化される副作用があるため、使用は自己責任で。
もとに戻すには、以下のコマンドを入力します。
sudo pmset -a tcpkeepalive 1
補足情報:コマンドの構成要素
特に知る必要もないのですが、一応コマンドの解説をします。
コマンドの構成要素
- sudo: “superuser do” の略で、管理者権限でコマンドを実行することを意味します。
このコマンドを実行するには、管理者パスワードの入力が必要になります。 - pmset: “power management settings” の略で、macOS の電源管理設定を操作するためのコマンドです。
- -a: これは
pmset
コマンドのオプションで、すべてのバッテリー/電源プロファイル (バッテリー使用時、電源アダプタ接続時など) に対して設定を適用することを意味します。 - tcpkeepalive、: スリープ中のTCP接続の維持に関連する設定項目です。
- powernap、: スリープ中に特定のタスク (メールチェック、iCloud 同期など) を実行する機能に関連する設定項目です。
- 最後の数字、: 0… 無効化 (オフ)、 1…有効化 (オン)
各コマンドの意味
sudo pmset -a tcpkeepalive 0
- このコマンドは、tcpkeepalive、という設定をオフにします。
- tcpkeepalive がオンの状態 (デフォルト) だと、Mac がスリープ状態であっても、ネットワーク接続を維持しようとします。
「Macを探す」機能では、デバイスの位置を特定したり、リモートでデータを消去したりするために、このネットワーク接続を利用しています。
この機能がオンの状態だと、定期的にネットワーク通信が発生するため、完全に深いスリープ状態に入ることができず、スリープが解除されてしまう原因の一つとなり得ます。 - このコマンドを実行することで、スリープ中の TCP接続維持を無効化し、より深いスリープ状態を実現します。
※ 「Macを探す」機能は実質的に使えなくなるものの、スリープが勝手に解除される問題を解決できる可能性があります。
sudo pmset -a powernap 0
- このコマンドは、Power Napという機能をオフにします。
- Power Napは、Intel Mac時代に存在していた機能で、スリープ中でもメールの受信、iCloud の同期、Time Machine のバックアップなどのタスクを定期的に実行するものです。
- Apple シリコン (M1, M2, M3, M4 など) を搭載したMacでは、より効率的な電力管理システムが採用されているため、Power Nap は公式にはサポートされていません。
しかし、macOS の内部ではこの設定が残存している場合があり、それがスリープ解除の原因となることがあります。 - このコマンドで「Power Nap」を無効化することで、スリープ中に不要なタスクが実行されるのを防ぎ、スリープ解除問題の解決に繋がる可能性があります。
コメント