Appleシリコン搭載Macでスリープが勝手に解除される問題と対策
Appleシリコン(M1、M2、M3など)を搭載したMacを使用していると、スリープにしたはずの本体が意図せず起動してしまうことがあります。例えば、夜に「スリープ」操作をしたのに、ふと気づくとディスプレイが点灯していたり、クラムシェル状態(蓋を閉じた状態)でも接続しているUSBハブのランプがアクティブになっていたり……。
このように「勝手にスリープが解除される」症状にお困りの方へ、いくつかの対処法をまとめてみました。
なぜ勝手にスリープが解除されるのか?
Appleシリコン搭載Macでスリープが解除される原因には、以下のようなものが考えられます。
- ネットワーク関連の機能が動作している
「Find My Mac(探す)」機能やPower Napなど、スリープ中でもネットワークアクセスを行う機能が動作している場合、Macはタイミングによってスリープ解除されることがあります。 - Bluetooth機器などの周辺機器からの入力
マウスやキーボード、トラックパッドなどのBluetoothデバイスがスリープを解除してしまうことがあります。「System Settings(システム設定)」>「Bluetooth」あるいは「アクセシビリティ」などの項目で設定を見直す必要があるケースがあります。 - OS内部で行われる省エネルギー機能の管理
macOSがバックグラウンドで行うシステムメンテナンス、バックアップ、メール受信などで、わずかにスリープ状態が解除されることがあります。AppleシリコンでもIntel時代の「Power Nap」相当の設定が影響していることがあります。
簡単に対処できるコマンド
「スリープにしたはずなのに、なぜか勝手に起きてしまう」という症状に対して、特に有効なのが以下2つのTerminalコマンドです。アプリケーションフォルダから「ターミナル」を起動し、1行ずつ実行します。
sudo pmset -a tcpkeepalive 0
sudo pmset -a powernap 0
注意点
これらのコマンドはスリープ中のネットワーク接続やバックグラウンド処理を制限するため、「探す(Find My Mac)」機能やTime Machineの自動バックアップ、メール受信などがスリープ中に行われなくなる可能性があります。
特に、Macを紛失した場合に位置を特定できなくなる恐れがあるため、常時オフにせず、必要なときだけオン・オフを切り替える使い方をおすすめします。
sudo pmset -a tcpkeepalive 0
- Find My Mac(探す)などの機能で位置情報を伝えるために、ネットワーク通信がスリープ中でも動作する場合があります。
tcpkeepalive
を0(オフ)にすることで、スリープ中のネットワーク維持を停止させ、予期せぬスリープ解除を抑制できます。
sudo pmset -a powernap 0
- Intel Mac時代から存在する「Power Nap」という機能をオフにします。
- Appleシリコンではより高度な省電力アーキテクチャが導入されているため、厳密にはIntel時代とは動作が異なりますが、macOSの設定上、この項目がオンになっているとスリープ状態を維持できないケースがあります。
なお、上記コマンドのパラメータを「1」に変更することで、再びオンに戻すことが可能です。
# 元に戻したいとき
sudo pmset -a tcpkeepalive 1
sudo pmset -a powernap 1
そのほかの確認・対処方法
Bluetoothでのスリープ解除を防ぐ
Bluetoothマウスやキーボードを動かしただけでスリープが解除されるのを防ぎたい場合は、以下を確認してみてください。
- システム設定>Bluetooth
- 使っていないBluetooth機器がペアリングされていないか確認。
- 「アクセシビリティ」>「ポインタコントロール」などで、デバイスがスリープ解除のトリガーになっていないか設定をチェック。
- 以前のmacOS (例: MontereyやBig Sur) の場合
- 「システム環境設定>省エネルギー>Bluetooth機器でこのMacのスリープを解除する」をオフにする。
ネットワークアクセスで起動する設定をオフにする
pmset -a tcpkeepalive 0
を実行しても改善しない場合は、「System Settings(システム設定)」>「ネットワーク」>「詳細設定」などにある「Wake for network access(ネットワークアクセスによるスリープ解除)」系のチェックがオンになっていないかを確認し、オフにする方法があります。
スケジュールやソフトウェアの影響を確認
- スケジュール機能
「システム設定>バッテリー>スケジュール」あるいは「システム環境設定>省エネルギー>スケジュール」が有効になっている場合、指定時刻に自動起動・スリープを行う設定があるかもしれません。不要ならオフにしましょう。 - バックアップや自動アップデート
Time Machineやソフトウェア・アップデートが深夜などに動いている場合も、スリープが解除される可能性があります。自動バックアップのタイミングを変えてみるのも一つの手です。
起動ログを調べて原因を特定する
コマンドラインに慣れている方は、以下のコマンドで起動(Wake)の理由を調べることができます。
pmset -g log | grep "Wake reason"
このログに「TCPKeepAlive」や「EC.SleepTimer」などの文字列が記録されていれば、上記の対策が有効となる可能性が高いです。
まとめ
Appleシリコン搭載Macで、スリープが勝手に解除される問題に頭を悩ませている場合、まずは以下の2行を試してみてください。
sudo pmset -a tcpkeepalive 0
sudo pmset -a powernap 0
これだけで症状が大幅に改善する方も多いはずです。加えて、Bluetooth機器の設定やネットワーク関連の設定などもあわせて見直すことで、ほぼ問題なくスリープが維持できるようになります。もしオンに戻したい場合は、コマンドの末尾を「1」に変えて再入力するだけで元に戻せます。
日々の作業をスムーズに進めるうえで「スリープを確実に維持できる」ことは地味に大切です。少しでも快適なMacライフの手助けになれば幸いです。