Skip to content

原文(日本語に翻訳) ​

Claude Code の終了時に caffeinate プロセスが正常に終了せず、Mac がスリープしない問題を修正しました。

原文(英語) ​

Fixed caffeinate process not properly terminating when Claude Code exits, preventing Mac from sleeping

概要 ​

macOS では Claude Code が長時間処理を行っている際、スリープを防ぐために caffeinate コマンドを使用します。しかし Claude Code が終了した後も caffeinate プロセスが残存し、Mac がスリープしなくなる問題が発生していました。この修正により、Claude Code の終了時に caffeinate プロセスも適切に終了するようになります。

基本的な使い方 ​

修正は自動的に適用されます。Claude Code 終了後に Mac が通常通りスリープするようになります。

bash
$ claude
# 長い処理中は Mac がスリープしない(caffeinate が機能)
# Claude Code 終了後は caffeinate が終了し、Mac が通常通りスリープ可能になる

実践例 ​

ユースケース: バッテリー消費の改善 ​

ラップトップを使用している場合、意図せず caffeinate が残存することでバッテリーを無駄に消費する問題が解消されます。

bash
# Claude Code を使用後に終了
$ claude
> 大きなプロジェクトの分析をお願いします
# 処理中はスリープしない
> /exit

# 終了後は通常通りスリープする
$ ps aux | grep caffeinate
# caffeinate プロセスが残っていないことを確認できる

ユースケース: 修正前の回避策(不要になった) ​

修正前は以下のような回避策が必要でしたが、今後は不要になります。

bash
# 以前の回避策(もう不要)
# $ killall caffeinate

# 修正後は Claude Code 終了時に自動的に caffeinate も終了する

注意点 ​

  • caffeinate は macOS 固有の機能で、システムのスリープを防ぐプロセスです
  • Claude Code が長時間の処理(ファイル編集、コード生成など)を行っている間はスリープを防ぐ必要があるため、caffeinate の使用自体は正常な動作です
  • 問題は Claude Code 終了後も caffeinate が残存していた点にあり、本修正でこの問題が解消されます
  • 修正前に caffeinate プロセスが蓄積している場合は killall caffeinate で手動終了できます

関連情報 ​