原文(日本語に翻訳)
claude -p がバックグラウンドコマンドが終了しない場合に最終結果の後に永遠にハングする問題を修正 — stdin が閉じられた後、約 5 秒でバックグラウンドシェルが停止されるようになりました。
原文(英語)
Fixed claude -p hanging forever after its final result when a backgrounded command never exits — background shells are now stopped ~5s after the result once stdin closes
概要
claude -p(パイプモード)で実行中にバックグラウンドコマンドが終了しない場合、最終結果を出力した後もプロセスがハングし続けるバグが修正されました。修正後は、stdin が閉じられてから約 5 秒後にバックグラウンドシェルが自動停止されます。
基本的な使い方
claude -p を使用したパイプライン処理が正常に終了するようになりました:
bash
echo "コードをレビューしてください" | claude -p
# → 結果出力後、プロセスが正常に終了するようになった実践例
CI/CD パイプラインでの使用
bash
# テスト結果を解析して改善提案を求める(以前はハングする場合があった)
cat test-results.txt | claude -p "このテスト失敗の原因と解決策を教えてください"
echo "Exit code: $?"修正後はコマンドが正常に終了し、次の処理に進めます。
スクリプト内での使用
bash
#!/bin/bash
# バックグラウンドプロセスが残っていても正常に終了する
REVIEW=$(git diff HEAD~1 | claude -p "このコードレビューをしてください")
echo "$REVIEW" > review.txt
echo "レビュー完了"注意点
- stdin が閉じられてから約 5 秒後にバックグラウンドシェルが停止します。
- バックグラウンドプロセスが意図的に長時間実行される設計の場合は注意が必要ですが、通常の
claude -p使用パターンでは問題ありません。 - この修正は
claude -p専用の問題です。インタラクティブモードのclaudeには影響しません。