Skip to content

原文(日本語に翻訳)

バックグラウンドセッションの信頼性を改善: 長時間実行されるコマンドやワークフローが、セッションのプロセスが停止・再起動・アップデートされても生き残るようになった。Windowsでも、バックグラウンドシェルがkillされる代わりに引き継がれるようになった

原文(英語)

Improved background session reliability: long-running commands and workflows now survive the session's process being stopped, restarted, or updated — including on Windows, where background shells are handed off instead of being killed

概要

Claude Codeのバックグラウンドセッション(長時間実行されるコマンドやワークフロー)が、セッションのプロセス自体の停止・再起動・アップデートを跨いで継続実行できるようになりました。これまではCLIプロセスが終了すると、実行中のバックグラウンドタスクも巻き添えで失われてしまうことがありましたが、修正後はテストやビルドなどの長時間処理が中断されずに生き残ります。特にWindowsでは、従来バックグラウンドシェルがプロセス終了時にkillされていましたが、修正後はプロセスを跨いで「引き継がれる(handoff)」ようになり、macOS/Linuxと同等の信頼性が得られます。

基本的な使い方

bash
# バックグラウンドで長時間コマンドを実行する例
# プロンプト内で明示的にバックグラウンド実行を指示する
npm test を実行して(バックグラウンドで)

# 実行中のコマンドを Ctrl+B でバックグラウンドに切り替えることも可能

バックグラウンドに切り替えたタスクは、Claude Codeのセッションプロセスが再起動・アップデートされても処理が継続されます。

実践例

長時間ビルド中にClaude Codeをアップデートするケース

修正前の問題シナリオ:
1. 大規模プロジェクトで `npm run build` をバックグラウンド実行
2. ビルド実行中に Claude Code のバージョンアップデートが走る
   (または手動でプロセスを再起動)
3. ❌ セッションプロセスの終了と同時にバックグラウンドシェルもkillされる
4. ビルドが中断され、最初からやり直しが必要

修正後の動作:
1. 大規模プロジェクトで `npm run build` をバックグラウンド実行
2. アップデートやプロセス再起動が発生
3. ✅ バックグラウンドシェルは新しいプロセスに引き継がれる
4. ビルドは中断されず最後まで完走する

CI的な長時間テストスイートの実行

bash
# バックグラウンドでテストスイート全体を実行
テストスイート全体を実行して、終わったら結果を教えて(バックグラウンドで)

# 実行中にセッションが再起動・クラッシュ・アップデートされても
# テストプロセスは生き残り、再接続後も結果を確認できる

Windows環境でのバックグラウンドシェルのhandoff

修正前(Windows):
1. PowerShell上でバックグラウンドデプロイスクリプトを起動
2. Claude Code のプロセスが終了(アップデート・再起動など)
3. ❌ バックグラウンドシェルもプロセスと一緒にkillされる
4. デプロイが中途半端な状態で止まってしまう

修正後(Windows):
1. PowerShell上でバックグラウンドデプロイスクリプトを起動
2. Claude Code のプロセスが終了
3. ✅ バックグラウンドシェルはkillされず、新しいプロセスに引き継がれる
4. デプロイ処理は中断されずに継続される

アップデート中の並行作業

ユーザー: デプロイスクリプトをバックグラウンドで実行しつつ、
         Claude Code 自体のアップデートも適用してほしい

Claude: デプロイをバックグラウンドで開始します。
       [バックグラウンドシェル起動]

       Claude Code のアップデートを適用します。
       [アップデート実行 → セッションプロセス再起動]

       ✅ デプロイ処理は再起動後も継続しています。進捗を確認します。

注意点

  • Windowsでは、これまでバックグラウンドシェルがプロセス終了時にkillされる既知の制約がありましたが、本修正でmacOS/Linuxと同様にプロセスを跨いだ継続が可能になりました
  • バックグラウンドタスク機能自体を無効化したい場合は、環境変数 CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 を設定してください
  • セッションプロセスのアップデートや再起動を跨いでタスクが継続するとはいえ、OSの再起動やマシンのシャットダウンまでは生き残りません
  • 長時間タスクの状態は、再接続後にバックグラウンドセッション一覧から確認できます

関連情報