360 Secure SkillHub
360 安全技能中心

reflex-process-management

该 Skill 提供 Reflex 应用的进程管理流程:用 reflex compile --dry 做编译检查,用生产模式启动服务并将输出写入 reflex.log,通过日志定位端口和错误,使用 lsof/ss/fuser 找到监听进程,发送 SIGINT/SIGTERM 后重启,以排查运行中的问题。

reflex-dev
热度 0.00
最近更新 2026-10-19 00:29:00
分类:开发依赖:代码执行 / 读写文件应用场景:调试排错 / DevOps / 自动化脚本

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add reflex-dev/agent-skills/reflex-process-management
Metadata
name
reflex-process-management
description
Manage Reflex application processes: compile to test, run the server in production mode, reload a running app by finding and restarting the app process, and manage logs for debugging. Use when the user wants to test, run, restart, or reload a Reflex app, when troubleshooting a running Reflex server, or when investigating errors.

Reflex Process Management

This skill covers how to compile, run, and reload a Reflex application.

Compiling (Testing the App)

To verify the app compiles without errors, run:

reflex compile --dry

This checks for syntax errors, import issues, and component problems without starting the server. Use this as a quick validation step after making changes.

Running the Server

When instructed to run the Reflex server, always use production mode and redirect output to a log file:

reflex run --env prod --single-port 2>&1 | tee reflex.log

This command starts a long-running server process that does not support hot reload in production mode. Code changes will not be picked up automatically — you must stop and restart the server to apply changes (see Reloading a Running App below).

Using 2>&1 | tee reflex.log captures both stdout and stderr to reflex.log while still printing to the terminal.

Important: Always use --env prod unless the user explicitly requests development mode.

Reloading a Running App

To reload the app without manually stopping and restarting from the terminal, follow these steps:

Step 1: Determine the app port

Read reflex.log to find the port the app is listening on. Look for a line like App running at: http://0.0.0.0:<port>. Do not assume the port is 8000.

Step 2: Find the app process

Using the port from Step 1, locate the listening process (not browser connections):

lsof -i :<port> -sTCP:LISTEN -t

The -sTCP:LISTEN flag is critical — it filters to only the server process that is listening on the port, excluding browser or client connections. Without it, you may kill the user's browser.

If lsof is not available, use:

ss -tlnp | grep :<port>

Or:

fuser <port>/tcp

Step 3: Send an interrupt signal

Send SIGINT (equivalent to Ctrl+C) to gracefully stop the process:

kill -INT $(lsof -i :<port> -sTCP:LISTEN -t)

If the process doesn't stop, escalate to SIGTERM:

kill -TERM $(lsof -i :<port> -sTCP:LISTEN -t)

Step 4: Restart the server

Once the old process has exited, truncate the old log and start the server again:

> reflex.log
reflex run --env prod --single-port 2>&1 | tee reflex.log

Investigating Errors

When the user reports an error, read reflex.log to find and diagnose the issue.