Skip to content

原文(日本語に翻訳)

インタラクティブなプロンプトで止まっているように見えるバックグラウンドbashタスクが、約45秒後に通知を表示するようになりました。

原文(英語)

Background bash tasks that appear stuck on an interactive prompt now surface a notification after ~45 seconds

概要

バックグラウンドで実行しているbashタスクがユーザー入力を待つ対話型プロンプトで止まっている場合、約45秒後に通知が表示されるようになりました。sudo のパスワード入力、git の確認プロンプト、インタラクティブなセットアップウィザードなど、入力待ちで無応答になったタスクを素早く特定できます。

基本的な使い方

特別な設定は不要です。バックグラウンドタスクがインタラクティブなプロンプトで止まると、約45秒後に通知が表示されます。

bash
# 例: sudoを必要とするコマンドをバックグラウンドで実行
# Claudeが実行:
sudo apt-get install -y some-package
# ↑ パスワード入力を待っていると、45秒後に通知が来る

実践例

sudo コマンドの対応

bash
# 問題が起きやすいケース
sudo systemctl restart nginx

# 通知が来たら、タスクの詳細を確認してsudoなしの代替を提案するよう指示する
# または、sudoなしで実行できるよう環境を設定する

# 推奨: NOPASSWD設定でsudoを自動化
# /etc/sudoers.d/claude-code
echo "username ALL=(ALL) NOPASSWD: /usr/bin/systemctl" | sudo tee /etc/sudoers.d/claude-code

インタラクティブなCLIツールの対応

bash
# 問題が起きやすいケース
npm init  # プロジェクト名、バージョンなどを聞いてくる

# 解決策: --yes フラグで非対話型にする
npm init --yes

# または
npx create-react-app my-app --yes

git 操作での対応

bash
# 問題が起きやすいケース
git commit  # エディタが開く

# 解決策: メッセージを直接指定
git commit -m "fix: update configuration"

# または、非対話型モードを設定
GIT_EDITOR=true git commit  # エディタを無効化

データベースマイグレーションの確認プロンプト

bash
# 問題が起きやすいケース
rails db:migrate  # 確認を求める場合がある

# 解決策: 環境変数で強制実行
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails db:migrate

注意点

  • 通知は45秒後に表示されますが、タスクはそのまま継続しています(強制終了ではありません)
  • 通知を受け取ったら、バックグラウンドタスクの詳細を確認し、必要に応じてClaudeに対話型プロンプトを回避する方法を依頼してください
  • 長時間かかる正当なタスク(大規模なビルドなど)でも誤検知する可能性がありますが、新しいデータが出力されていれば通知は表示されません
  • インタラクティブプロンプトを必要とするコマンドは、可能な限り -y--yes--non-interactive などのフラグを使用して非対話型で実行することを推奨します

関連情報