Macがスリープから勝手に復帰する・熱くなる場合の対処法

先日から手持ちのMacBook Pro 13 Mid 2019が蓋を閉じてスリープ中であるにも関わらず勝手にスリープが解除されたり、スリープ中に異様に熱を持つ現象に悩まされていたが、色々やった結果、改善したため、スリープ中にMacが熱い、スリープから勝手に復帰する場合の対処法を紹介する。

温かくなるだけなら正常の場合もある

macOS Catalina 10.15.5以降ではThunderbolt 3を搭載するMacBookシリーズにおいて「バッテリーの状態管理」という新たな機能が追加されたため、例え電源アダプタケーブルを接続している状態であっても定期的にバッテリーを充放電させる処理が行わている。

macOS Catalina 10.15.5以降でバッテリーの充電停止・再開を繰り返すのは正常?

このため、macOS Catalina 10.15.5以降でMacBookシリーズが多少温かくなる程度の場合はバッテリーの充放電が行われているだけで正常な場合もある。

ただし、あまりにもMac本体が熱かったり、常に熱を持っているようであれば異常があると思われるため、下記の対処法を試そう。

Macがスリープから勝手に復帰する・熱い場合の具体的対処手順

下記に様々な対処法を挙げているが、いずれの項目でも作業が終わったら一度Macを再起動させよう。

ターミナルコマンドでスリープから復帰してしまう原因を探る

まずターミナルを開いて以下のコマンドを実行してスリープから復帰してしまう原因を探ろう。

log show | grep 'Wake reason' | grep '日付'

「日付」という部分には「2020-07-05」のように問題が発生した日付を指定しよう。

単純に以下のようなコマンドでも有効だが、以下のコマンドの場合、過去全てのスリープの履歴を洗い出すため非常に時間がかかる。

log show | grep 'Wake reason'

そのため、下記のようにスリープで問題が起きた際の日付を指定して(この場合は2020年7月5日)実行することをお勧めする。

log show | grep 'Wake reason' | grep '2020-07-05'

コマンドを実行すると例え日付を指定したとしても、ある程度の時間がかかるので気長に待とう。

処理が終わるとズラズラと非常に長い英文のログが表示されるが「Wake reason(復帰した理由)」という部分に注目しよう。

上記画像のログでは「EC.RTC」、「EC.USBC」、「EC.ARPT」というのが主な復帰理由になっている。

なお「EC.LidOpen(User)」となっている場合は単純に自身で蓋(Lid)を開けたからであり無視しよう。

EC.RTCというのは「Real Time Clock」のことであり、Macの時刻の自動修正をスリープ中に行なっているが、これについてはスリープが正常な場合でも多数記録されることがある他、「Wake reason」として「EC.RTC」が記録されても実際にはスリープ関連の問題が発生していないことがほとんどなので無視してしまっていいだろう。

注目したいのは「EC.USBC」及び「EC.ARPT」だ。

括弧内に「Maintenance」と書かれていることからスリープ中のmacOSのメンテナンス機能が働いているようだ。

省エネルギー設定を見直す

「Wake reason」が「Maintenance(メンテナンス)」なのであれば省エネルギー設定を見直すことで問題が解決する可能性が高いため、僕の環境ではシステム環境設定の「省エネルギー」で以下のような設定を行なった。

「バッテリー」の項目と「電源アダプタ」の項目の両方で「可能な場合はハードディスクをスリープさせる」以外の項目を全てオフにする。

この場合スリープ中のバックアップやメールチェックなどが自動で行われなくなるが試す価値は大いにある。

管理人の環境では上記設定を試したところ、スリープ中の勝手な復帰やMac本体が熱くなるという問題は完全に解消した。

スリープモードを変更してみる

MacはMacBookやiMacなど、ノート型Macとデスクトップ型Macでスリープモードが違う(一部Macで例外あり)ため、ターミナルで以下のコマンドを実行してスリープモードを変更して挙動を見てみるというのも有効だ。

sudo pmset -a hibernatemode X

「X」の部分に数字でモードを指定する

パスワードを求められたら管理者パスワードを入力しよう。

なお、スリープモードには主に下記の3種類がある。

  • hibernatemode 0:一部のデスクトップMacの通常スリープ
  • hibernatemode 3::「セーフスリープ」。ノート型Macのスリープのデフォルト
  • hibernatemode 25::ターミナルコマンドでのみ指定可能。完全なハイバネートであり、メモリへの電力がオフになり、スリープからの起動はディスクイメージから行われるためスリープへの移行や復帰が非常に遅くなる

ちなみに今のMacのスリープモードがどれなのかは下記のコマンドで確認可能だ。

pmset -g | grep hibernatemode

なお、スリープモードを含めてMacの電源やバッテリー関係の設定を全てデフォルトに戻すには下記のコマンドを実行する(ほぼSMCのリセットと同様の効果が得られる)。

sudo pmset -a restoredefaults

「Restored Default settings」と出れば電源・バッテリー・スリープ関係の設定が全てデフォルトに戻る。

スタンバイ設定を確認・変更

一部のMacではスリープ(ハイバネート)の他に「スタンバイ」という仕様があり、2013年以降のMacではスリープ後3時間で「スタンバイ」という、「より深い眠り」に移行する。

まずは自分のMacのスタンバイモードを下記のコマンドで確認してみよう。

pmset -g | grep standby

「standby 1」となっていればスタンバイが有効になっている。

通常はこのままで構わないが、スタンバイモードを変更することでスリープ関連の問題を解決できる場合があるので下記のコマンドでスタンバイモードを変更して様子を見てみよう。

sudo pmset -a standby 0

パスワードを求められたら管理者パスワードを入力してエンターキー。

注意点として「standby 0」でスタンバイをオフにした場合、Macをスリープさせてもいわゆる「深い眠り」に入らず、ノート型Macの場合、バッテリーの使用量が増える。

なお、再度スタンバイをオンにする場合は下記のコマンドを実行する。

sudo pmset -a standby 1

日付と時刻の自動調整をオフにする

前述の「Wake reason」について「EC.RTC」という項目は無視してもいいと書いたが、ここまでの手順を試して改善しないのであればシステム環境設定から「日付と時刻」の設定を開き「日付と時刻を自動的に設定」をオフにしてみよう。

Siriの音声フィードバックをオフにする

Siriのプロセス「corespeedchd」が大量のデータ通信を行うことが海外のフォーラムで報告されていたため、システム環境設定の「Siri」の項目で「音声フィードバック」をオフにしてみよう。

また、場合によってはウィンドウ左の「Siriに頼むを有効にする」自体をオフにしてもいい。

モニターを接続している場合、スリープ中は物理的に切断する

もしMacBookシリーズなどで外付けモニターを利用しているなら、スリープ中は外付けモニターのUSB-C・HDMI・DisplayPortケーブルなどを抜いてみよう。

スリープ中でもケーブルを接続していたい場合は少なくともMacBookシリーズをスリープにさせてからケーブルを繋ぐようにしよう。

SMC・NVRAMのリセット

「SMC(システム管理コントローラ)」及び「NVRAM(不揮発性ランダムメモリ)」のリセットもMacにトラブルが起こった際に有効だ。

特にSMCはMacの電源やバッテリー、スリープの管理を行うものであるため、SMCをリセットすることで電源やバッテリー、スリープ関連のトラブルを解決できる可能性が高い。

SMCのリセット方法

T2チップを搭載したノート型Macであれば下記の手順でSMCをリセットする。

  1. Macをシステム終了する。
  2. 内蔵キーボードで、以下のキーをすべて長押しする。場合によっては、Macの電源が入る。
    • キーボードの左側の「control 」キー
    • キーボードの左側の「option (Alt) 」キー
    • キーボードの右側の「shift 」キー
  3. 上記3つのすべてのキーを7秒間押し続け、電源ボタンも長押しする。Macの電源が入っている場合は、キーを押し続けている間に電源が切れる。
  4. 4つすべてのキーをさらに7秒押し続けてから、指を放す。
  5. 数秒待ってから、電源ボタンを押してMacの電源を入れる。

デスクトップコンピュータの場合は下記の手順でSMCをリセットする。

  1. Macをシステム終了し、電源コードを外ず。
  2. 15秒待ってから、電源コードを接続し直しす。
  3. 5秒待ってから、電源ボタンを押してMacの電源を入れる。

T2チップ非搭載のMacの場合は下記のAppleサポートページを参考にして頂きたい。

参考 Mac の SMC をリセットする方法Apple
NVRAMのリセット方法

NVRAMをリセットするには下記の手順を行う(全Mac共通)。

  • Macをシステム終了させる(電源を落とす)
  • Macを起動させ、すぐにCommand+Option+P+Rキーを約20秒間押し続ける
  • 起動音が鳴るMacの場合は2回目の起動音が鳴ったらキーを離す
  • T2チップ搭載Macの場合、2回目のAppleロゴが表示されたキーを離す

Macを上書き・またはクリーンインストール

依然として問題が解決しない場合はmacOSの上書きインストールやクリーンインストールを試そう。

上書きインストールについてはmacOS Catalinaの記事になるが下記でまとめている。

不具合が生じたのでmacOS Catalinaを上書きインストールしてみた。引き継がれる設定、引き継がれない設定は?

まとめ

ほぼ考えられる限りのスリープにまつわる対処法をまとめてみた。

もし上記手順のいずれも効果がなかった場合、Macの物理的な故障も考えられるためAppleサポートに問い合わせた方がいいだろう。