原文(日本語に翻訳)
- サブエージェントが生成したバックグラウンドBashプロセスが、エージェント終了時にクリーンアップされない問題を修正しました
原文(英語)
- Fixed background bash processes spawned by subagents not being cleaned up when the agent exits
概要
Claude Codeのサブエージェント(Agentツールで起動される子エージェント)がBashコマンドをバックグラウンドで実行した場合、サブエージェントの処理が完了しても、そのバックグラウンドプロセスが終了されずにシステム上に残り続ける問題がありました。バージョン2.1.73でこの問題が修正され、サブエージェント終了時にすべての関連プロセスが適切にクリーンアップされるようになりました。
基本的な使い方
修正後は、サブエージェントが終了すると、それが起動したバックグラウンドプロセスも自動的に終了します。特別な操作は不要です。
bash
# Claude Codeのセッション内でサブエージェントを使う場合
# Agentツールがバックグラウンドプロセスを起動しても、
# タスク完了後に自動的にクリーンアップされる実践例
開発サーバーを起動するサブエージェント
bash
# サブエージェントが「テストサーバーを起動してテストを実行」というタスクを処理する場合
# 以前は: サーバープロセスがサブエージェント終了後も残り続けた
# v2.1.73以降: サブエージェント終了時にサーバープロセスも終了されるリソースリークの確認
bash
# 修正前に残留プロセスを手動で確認・終了していた方法
ps aux | grep -i "node\|python\|ruby" | grep -v grep
# 修正後はこの手動確認が不要に長時間実行タスクでのサブエージェント活用
bash
# 複数のサブエージェントを使った並行タスク
# 各サブエージェントが起動するプロセスは、タスク完了後に適切に終了される
# 例: ビルドとテストを並行実行
claude "フロントエンドのビルドとバックエンドのテストを並行で実行してください"注意点
- この修正以前(v2.1.73より前)では、サブエージェントが終了してもバックグラウンドプロセスが残り、メモリやCPUリソースを消費し続ける可能性がありました
- 修正前に起動された残留プロセスは手動で終了する必要があります(
ps auxで確認しkillで終了) - メインのClaude Codeセッションが正常に終了した場合も、すべての子プロセスが適切にクリーンアップされます
- この修正はサブエージェント(Agentツール)経由で起動されたプロセスに適用されます