急にMacがスリープしたり勝手に復帰して困っているとき、原因が見えず不安になりますよね。
この記事を読むと、ログを使ってスリープ発生と復帰の原因を特定するための具体的な手順や、初心者でも取り組みやすい読み方のコツがわかります。
| 項目 | 内容 |
|---|---|
| 独自コンテンツ1 | 実体験に基づく具体的なコマンドとログの読み方。 |
| 独自コンテンツ2 | プログラマー視点での原因切り分けのコツ。 |
| 独自コンテンツ3 | よくあるケース別の対処例をやさしく解説。 |
さっそく手を動かしてログを確認し、原因を見つけて快適なMac環境を取り戻しましょう。
Macエンジニア初めてでも大丈夫です、ゆっくり一つずつ進めば必ず原因が見つかりますから安心してついてきてくださいね。
Macでスリープ発生時のログを確認する基本手順


まずは肩の力を抜いてログを覗いてみましょう。Macは省電力の仕組みや接続機器の状態でスリープや復帰を繰り返すことがあり、ログを見れば原因のヒントが見つかることが多いです。
代表的な確認方法はConsoleアプリでの目視とターミナルでのコマンド抽出の二つがあります。ざっくり見るならConsoleで、期間指定やファイル保存や自動化をしたいときはターミナルでコマンドを使う流れが扱いやすいです。
- Consoleアプリで検索して画面上で原因の手がかりを探す方法。視覚的で初心者向けです。
- ターミナルでsudo log showを使って期間指定で抽出する方法。細かい条件や保存に強いです。
- pmset -g logで電源まわりのログを確認する方法。ハードや電源関係の手がかりが出やすいです。
Macでよく使う確認方法の選び方(Consoleとターミナル)


Consoleは画面操作で直感的に探せるのが魅力です。キーワード検索や時間範囲指定で気になるログをすぐに見つけられるため、まず状況を把握したいときに便利です。
ターミナルは細かい絞り込みやログ保存に強く、自動化スクリプトにも組み込めます。操作に慣れてくると複数回の調査や他の端末と共有するときにとても便利になります。
Consoleを起動して検索バーにSleepやWakeの絞り込みワードを入れる手順
アプリケーションフォルダやSpotlightでConsoleを起動します。管理者権限なしでログが閲覧できます。
上部の検索バーにSleepやWakeを入力して絞り込みます。時間範囲を指定して該当ログだけを表示すると見やすくなります。
該当ログを選んでエクスポートするかコピーしてテキスト保存します。スクリーンショットを添えて記録しておくと後で見返しやすいです。
ターミナルでsudo log showやpmsetを使って指定期間のログを保存する手順
Spotlightやユーティリティからターミナルを開きます。管理者権限が必要なコマンドの実行準備をしておきます。
sudo log show –start YYYY-MM-DD –end YYYY-MM-DD –predicate eventMessage contains ”Wake” or eventMessage contains ”Sleep”のように期間と条件で抽出します。抽出した結果をファイルにリダイレクトして保存すると再確認が楽になります。
pmset -g logで電源まわりのイベントを一覧できます。必要ならpmset -g log > ~/Desktop/sleeplog.txtなどでファイルに保存してください。
Macでスリープ復帰トラブルの原因を特定する診断手順


スリープから勝手に復帰して困っているとき、原因の当たりをつけるのは思ったより簡単です。まずは「何が起こったか」をログで確認して、その情報をもとに動作中のプロセスや接続機器をあたっていきます。優しく順を追えば見つかります。
ここで見るポイントは主に二つです。一つはWake reason(なぜ起きたかの理由)というログの文字列、もう一つは電源アサーション(スリープを抑止しているプロセス)です。この二つを合わせると原因特定が早くなります。
- まずログでWake reasonを探して起床トリガーの手がかりを得る。
- pmsetで現在の電源アサーションを確認してプロセスを特定する。
- 該当プロセスや外部機器を一つずつ止めて再現を確認する。
Wake reasonと電源アサーションから原因を特定するパターン


Wake reasonは簡単に言うと「何がスリープを解除したか」を示す短いコードや文字列です。たとえばUSB関連ならOHCやEHC、スケジュール起動ならRTCなどが出ます。コードだけでは分かりにくいときは周辺ログの時刻を合わせて状況を追います。
電源アサーションは「このプロセスがスリープを止めているよ」という印です。Wake reasonとアサーションを組み合わせると、たとえばUSBで起きていてかつ特定のアプリがアサーションを持っている、といった因果関係をつかめます。
ターミナルでWake reasonを抽出するコマンドと出力の読み方
ユーティリティからターミナルを起動してください。ログを絞る準備をします。
次のようにログを絞ってWake reasonを探します。出力の中でWake reason:のあとに続く文字列が重要です。必要なら時間範囲を24時間などにして絞り込んでください。
Wake reasonに出る略語を覚えておくと早いです。USB系はOHCやEHC、ネットワークはENETやLAN、スケジュールはRTCなどと対応します。周囲のログ行も手がかりになります。
pmset -g assertionsでアサーションを確認し問題のプロセスを見つける手順
ターミナルでpmset -g assertionsを実行して、現在のスリープ抑止情報を確認してください。ここに出る各行がどのプロセスがどんな種類のアサーションを持っているかを示します。
PreventUserIdleSystemSleepやKernelIdlePreventingなどの項目を探してください。プロセス名やPIDが分かれば、そのアプリを終了するかプロセスを停止して再現を確認します。
一つずつアプリや外部機器を外して様子を見ると効果的です。ドライバや周辺機器が原因のことも多いので順番に切って確認してください。
Macでスリープ関連のログを抽出してサポート用にまとめる方法


スリープや復帰の原因をまとめてサポートに渡すときには、必要な期間だけログを取り出して見やすく渡すのが一番喜ばれます。ログ全体を無造作に渡すとノイズが多くなって時間がかかるので、目的に合った切り出しが大切です。
基本的な道具はlog showとpmsetと圧縮コマンドです。log showは時間と条件を絞れるので重要なメッセージだけ集められますし、pmset -g logは電源周りの履歴をざっくり確認できます。
エンジニア目線のコツとしては、時間帯を狭めることとWake関連のキーワードで絞ることです。配布前にシステム情報とmacOSバージョンを添えて不要な個人情報は削除あるいは除外しておくとスムーズです。
必要な期間だけログを抜き出してファイルにする実践パターン


実践パターンはまず対象となる時間帯を決めて、その範囲だけをlog showで抽出してファイルに書き出す流れです。開始終了を指定する–startと–endか、直近を指定する–lastを使うと良いです。
抽出後はzipやgzipで圧縮してサポートに渡します。不要な情報を含めないために、Wake関連のキーワードで–predicateを活用したり、pmsetの出力を別ファイルに分けると整理しやすくなります。
log showで時間範囲を指定して出力しzipで圧縮する具体コマンド
下のコマンドは例です。日付部分を該当の開始終了時刻に置き換えて実行してください。log show –style syslog –predicate ’eventMessage contains “Wake reason” or eventMessage contains “Entering Sleep” or process == “kernel”‘ –start ”2025-12-10 20:00:00″ –end ”2025-12-11 08:00:00″ > sleeplog.txt。
生成されたsleeplog.txtをzipで圧縮します。zip sleeplog.zip sleeplog.txtあるいはgzip sleeplog.txtで圧縮してください。
圧縮後に中身を確認して不要な個人情報が含まれていないか見ます。問題なければ元の平文ファイルを削除してzipだけを渡すと安全です。
Macでリアルタイムにスリープイベントを監視して自動記録する方法


Macでスリープや復帰の原因をしっかり追いかけたいときは、リアルタイムで監視して自動的に記録するのが便利です。ログをその場で見ながら問題の発生タイミングを把握でき、ファイルに残して後でじっくり解析できます。
ここでは簡単に試せるやり方をいくつか紹介します。短時間の挙動確認から常時監視まで、用途に合わせて選べる実践的な手順を示します。
- ターミナルでその場で表示して様子を見る。素早く原因を切り分けたいときに便利です。
- ログをファイルに追記して自動保存する。後で時刻を追いながら詳細を調べられます。
- 起動時に常駐させて継続収集する。再現性の低い問題の取りこぼしを減らせます。



焦らずやれば必ず原因に近づけますから、まずは短めのログ取得から試してみてくださいね。長時間監視はあとで設定を整えれば大丈夫です。
log streamを使った簡易モニタリングとスクリプト化のパターン


log streamコマンドを使うと、システムログをリアルタイムで絞り込めます。簡単な絞り込み条件を指定して、SleepとWakeに関係するメッセージだけを拾えば、見落としが減ります。スクリプト化すればワンクリックで開始できるようになります。
log stream --predicate 'eventMessage contains "Sleep" OR eventMessage contains "Wake"' --style syslog
log streamでSleepやWakeをフィルタしてログをファイルに追記する具体手順
ログを置くフォルダを作成して書き込み権限を確認します。例として~/Logsや/var/logに保存する運用が使いやすいです。
ターミナルでlog streamにSleepとWakeの条件を与え、>>でファイルに追記して常時記録します。長時間動かす場合はnohupやtmuxで切り離しておくと安心です。
継続的に取りたい場合はLaunchDaemonに設定して起動時にログ収集を始めると便利です。ログローテーションも合わせて設定すると運用が楽になります。
Macのスリープログからよくある原因を実体験で判断するコツ


スリープログを見ても原因がぱっと分からないことはよくありますが大丈夫です。丁寧にログの時間帯とメッセージを追えば原因の候補を絞れます。
まず取り組むのは三つの切り分けです。Wake reasonや出力されるキーワードを見てUSB機器かアプリかスケジュールかを仮決めします。
エンジニア目線の実用的コツは発生時刻のパターンをメモすることと周辺のプロセスを確認することです。同じ時間帯に繰り返すならスケジュール系、偶発的なら機器やアプリに目を向けます。
- ログのWake reasonを確認する(日時と合わせて見る)
- USBやBluetoothの接続イベントを探す(機器名が出ることがある)
- カレンダーやタスクの時間照合をする(スケジュール系は時間が一致しやすい)



焦らなくて大丈夫です。ログは少しずつ読み解けば原因が見えてきますからゆっくりやってみてください。
Wake reasonやキーワードの実例からUSB機器・アプリ・スケジュールを見分ける方法


Wake reasonやログのキーワードは実例を押さえると見分けやすくなります。USB由来はUSBやEHC、BTなどの表記で出ることが多いです。アプリ由来はプロセス名やアプリ名が付いてログに残ります。
スケジュール起動はRTCやPowerd、calendar関連の記述でちょうど同時刻に出る点が特徴です。疑わしい機器は一時的に切って再現性を確かめると原因特定が早まります。
よくある質問


- ログはどこで確認すればいいですか
Consoleアプリのsystem.logや、ターミナルでpmset -g logを使うと分かりやすいです。Consoleは検索と時間指定が楽で、pmsetはスリープと復帰の詳細な履歴や理由が見られます。
- pmset -g logで注目すべき項目は何ですか
Wake reasonやDarkWakeの表記に注目してください。直前のプロセス名やIOイベントも原因の手がかりになります。
- 外付け機器が原因か判断できますか
USBやBluetoothの接続イベントがログに残るので、pmsetログとIOKit系のログを照合すると候補が絞れます。疑わしい機器を外して再現チェックするのが手早く確実です。
- 大量のログをどう絞り込みますか
tailやgrepで日時や’Wake reason’を指定して抽出すると効率的です。Consoleのフィルタや検索キーワードを使えば視界がすっきりします。
- ログだけで判断できないときはどうすればいいですか
セーフモード起動やSMC、NVRAMリセットを試して状況が変わるか確認してください。必要ならApple Diagnosticsを実行したり、サポート窓口でログを見てもらうと安心です。
まとめ


ここまででMacのスリープと復帰の原因をログから調べる方法をやさしく紹介しました。Consoleアプリでの視覚的な確認とターミナルを使った詳細ログの両方を使い分けると見落としが減ります。
まずはConsoleで怪しいメッセージや該当時間帯を探してください。より詳しく追うときはpmsetコマンドやlogコマンドを使って時間を絞り込み、sleepreasonやpowerd周りの記録をチェックすると原因候補が見つかりやすくなります。
問題が続く場合は外付け機器を外す、セーフモードで起動して再現するか試してください。ログをそのまま共有する際は個人情報が含まれることに注意して不要な部分を削ると安心です。



慌てず順番に確認していけば大抵の原因は見つかります。わからないときはログを保存して専門家に見せると解決が早くなりますので気軽に相談してくださいね。
ログには個人を特定できる情報が含まれることがあります。共有するときは不要な行や機微な情報を消してから渡してください。
