reflex-process-management について
reflex-process-managementは、Reflexアプリのコンパイル、実行、再読み込みを扱うスキルです。プロダクションモードでの起動、ログによるエラー確認、再起動前のサーバープロセスの安全な特定と停止を案内します。
主な機能
- 01ドライランでのコンパイル確認
- 02プロダクションモードでのサーバー起動
- 03reflex.logへの出力記録
- 04ポートによるプロセス特定
- 05安全な停止と再起動
活用シーン
- 01アプリの変更によるコンパイルエラーの確認
- 02Reflexアプリのプロダクション起動
- 03エラー調査とコード変更後の再起動
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ reflex-dev/ agent-skills --skill reflex-process-managementインストール後、Claude Code で/reflex-process-managementを入力して読み込まれたか確認します。
詳細
Reflex のプロセス管理
このスキルでは、Reflex アプリケーションのコンパイル、実行、再読み込みの方法を説明します。
コンパイル(アプリのテスト)
アプリがエラーなくコンパイルされることを確認するには、次を実行します。
reflex compile --dry
サーバーを起動せずに、構文エラー、インポートの問題、コンポーネントの問題を確認します。変更後の簡単な検証手順として使用してください。
サーバーの実行
Reflex サーバーを実行するよう指示された場合は、必ず本番モードを使用し、出力をログファイルにリダイレクトしてください。
reflex run --env prod --single-port 2>&1 | tee reflex.log
このコマンドは、本番モードではホットリロードに対応していない長時間実行のサーバープロセスを起動します。コードを変更しても自動的には反映されません。変更を適用するには、サーバーを停止して再起動する必要があります(下記の実行中のアプリの再読み込みを参照)。
2>&1 | tee reflex.log を使用すると、標準出力と標準エラー出力の両方を reflex.log に保存しながら、ターミナルにも表示できます。
重要: ユーザーが開発モードを明示的に要求しない限り、必ず
--env prodを使用してください。
実行中のアプリの再読み込み
ターミナルから手動で停止して再起動せずにアプリを再読み込みするには、次の手順に従ってください。
ステップ 1:アプリのポートを特定する
reflex.log を読み、アプリがリッスンしているポートを確認します。App running at: http://0.0.0.0:<port> のような行を探してください。ポートが 8000 だと決めつけないでください。
ステップ 2:アプリのプロセスを見つける
ステップ 1 で確認したポートを使い、リッスン中のプロセス(ブラウザー接続ではありません)を特定します。
lsof -i :<port> -sTCP:LISTEN -t
-sTCP:LISTEN フラグは重要です。これは、ポートをリッスンしているサーバープロセスだけに絞り込み、ブラウザーやクライアントの接続を除外します。このフラグがないと、ユーザーのブラウザーを終了させてしまうおそれがあります。
lsof が使用できない場合は、次を使用します。
ss -tlnp | grep :<port>
または、次を使用します。
fuser <port>/tcp
ステップ 3:割り込みシグナルを送信する
プロセスを正常に停止するため、SIGINT(Ctrl+C と同等)を送信します。
kill -INT $(lsof -i :<port> -sTCP:LISTEN -t)
プロセスが停止しない場合は、SIGTERM に切り替えます。
kill -TERM $(lsof -i :<port> -sTCP:LISTEN -t)
ステップ 4:サーバーを再起動する
古いプロセスが終了したら、古いログを空にしてサーバーを再起動します。
> reflex.log
reflex run --env prod --single-port 2>&1 | tee reflex.log
エラーの調査
ユーザーからエラーが報告された場合は、reflex.log を読んで問題を特定し、診断してください。