Skip to content

原文(日本語に翻訳)

アイドル状態のバックグラウンドシェルコマンドに対する自動メモリ圧迫解放を追加した(CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1 で無効化可能)。

原文(英語)

Added automatic memory-pressure reaping for idle background shell commands (disable with CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1)

概要

Claude Code がバックグラウンドで実行したシェルコマンドのうち、アイドル状態になったものを自動的にメモリから解放するようになりました。長時間のセッションや多数のバックグラウンドコマンドを実行した際のメモリ使用量を抑制し、パフォーマンスを改善します。この動作が不要な場合は環境変数で無効化できます。

基本的な使い方

この機能はデフォルトで有効化されており、設定不要です。自動的にアイドル状態のバックグラウンドシェルプロセスのメモリが解放されます。

機能を無効化する場合

bash
# 一時的に無効化
export CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1
claude

# または特定のセッションで無効化
CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1 claude

環境変数として永続設定する場合

bash
# ~/.bashrc または ~/.zshrc に追加
echo 'export CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1' >> ~/.zshrc
source ~/.zshrc

実践例

長時間セッションでのメリット

bash
# 多数のバックグラウンドコマンドを実行するタスク
# (例: テスト実行、ビルド、サーバー起動など)

# Claude が複数のバックグラウンドシェルを起動した後、
# アイドル状態になったものは自動的にメモリ解放される

メモリ使用量の確認

bash
# Claude Codeのメモリ使用量を確認
ps aux | grep claude

# システム全体のメモリ状況
free -h

無効化が有効な場面

バックグラウンドシェルの状態を長期間保持したい場合は無効化が適切です:

bash
# 例: 開発サーバーをバックグラウンドで維持したい場合
export CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP=1
claude
# → バックグラウンドのdev serverプロセスが意図せずreapされない

注意点

  • この機能は「アイドル状態」のバックグラウンドシェルのみを対象とします。実行中のプロセスには影響しません
  • メモリ圧迫が発生していない場合、reapは積極的には行われません
  • バックグラウンドシェルのreap後にそのシェルでコマンドを実行しようとすると、新しいシェルが起動されます
  • 長時間実行が必要なバックグラウンドサービス(開発サーバーなど)を維持したい場合は無効化を検討してください

関連情報