実行コマンド
caffeinate -dimsu
作業を始める前にこれをターミナルで実行しておくだけで、Macが自動スリープしなくなり、バックグラウンドで動いているAIエージェントの処理(長時間のコード生成・画像生成・リサーチなど)が途中で止まらなくなります。
なぜ処理が止まるのか
AIエージェントに処理を任せて席を離れると、戻ってきたときに途中で止まっていることがあります。原因はエージェント側ではなく、macOSの電源管理です。無操作状態が一定時間続くと自動でスリープに入り、CPU処理ごとバックグラウンドのプロセスも止まってしまいます。
caffeinateとは
macOS標準搭載のコマンドで、指定した条件の間だけスリープを抑止できます。インストール不要でターミナルからすぐ使えます。オプション一覧はman caffeinateで確認できます。
主要オプション
| オプション | 効果 |
|---|---|
-d |
ディスプレイをスリープさせない |
-i |
アイドルスリープを防止 |
-m |
ディスクのアイドルスリープを防止 |
-s |
システムスリープを防止(AC電源接続時のみ有効) |
-u |
ユーザーがアクティブであると宣言する |
-t <秒数> |
指定秒数だけ効果を持続 |
-w <PID> |
指定プロセスが終了するまで効果を持続 |
長時間作業を任せるときはcaffeinate -dimsuでまとめて指定すれば十分です。
コマンドに直接渡して使う
caffeinateにコマンドを渡すと、そのコマンドが終了すると同時にスリープ抑止も解除されます。ターミナルを開きっぱなしにする必要がなく運用しやすい方法です。
caffeinate -dimsu ./generate_images.sh
動いているプロセスに後から適用する
対策を忘れて実行してしまった場合は、PIDを指定して後付けできます。
ps aux | grep claude
caffeinate -dimsu -w 12345
終了方法
オプションのみで実行した場合はControl + Cで停止します。ターミナルを閉じても効果は消えます。
画面ロックとの併用
caffeinateが防ぐのは自動スリープのみで、手動でスリープを選んだ場合やバッテリー駆動中に蓋を閉じた場合は通常通り止まります(-sはAC電源接続時のみ有効)。
離席時にセキュリティも確保したい場合は、スリープではなくControl + Command + Qで画面ロックを使うと、システムを起動したままバックグラウンド処理を継続できます。
caffeinate -dimsu でスリープ防止
↓
AIに指示
↓
Control + Command + Q でロック
↓
処理を止めずに安全に離席
まとめ
- macOSは無操作が続くと自動スリープし、バックグラウンドのAI処理も止めてしまう
-
caffeinate -dimsuで自動スリープを抑止できる - コマンドを直接渡すか(
caffeinate -dimsu <コマンド>)、-wでPID指定すれば必要な間だけ効果を持続できる -
-sを使うならAC電源接続が前提 - 離席時は
Control + Command + Qの画面ロックと組み合わせると安全