关于 reflex-process-management
reflex-process-management 是用于编译、运行和重新加载 Reflex 应用的技能。它涵盖生产模式启动、通过日志排查错误,以及重启前安全识别并停止服务进程。
主要功能
- 01Dry-run 编译检查
- 02生产模式启动服务
- 03将输出记录到 reflex.log
- 04按端口识别进程
- 05安全停止并重启
适用场景
- 01检查应用更改是否有编译错误
- 02以生产模式启动 Reflex 应用
- 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 以查找并诊断问题。