コンテナ内からプロセスを自動起動

WebUI やスクリプトからバックグラウンドのコマンド(claude 等)を起動するときの罠(task-launcher で確立)。

  • subprocess.Popen を使う(run でない)subprocess.run はブロックするので Streamlit 等の UI が フリーズする。Popen でノンブロッキング起動。
  • 非対話シェルではエイリアスが効かないalias claude='claude --dangerously-skip-permissions' は ログインシェルの便宜。bash -c 経由の自動起動では無効なので、フラグを明示して直に叩く (claude --dangerously-skip-permissions -p '...')。
  • シェルの堅牢化mkdir -p .../logs先頭に(未存在でのリダイレクト失敗防止)/ログパスは ダブルクォートで囲む(スペース対策)/ファイル名不可文字(/ 空白)は _ に置換。
  • 形:nohup bash -c "cd {proj} && claude ... -p '{prompt}'" > "{logpath}" 2>&1 &

出典:task-launchertask-launcher/CLAUDE.md Phase 2–3)