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 で手動終了できます

関連情報