本文档帮助你解决使用 FuckRun 时可能遇到的常见问题。
- 启动命令返回错误
- 进程状态显示未运行
- 日志中有错误信息
- 程序路径错误
- 工作目录不存在
- 权限问题
- 端口被占用
- Python解释器问题
- 检查程序路径
# 确认程序是否存在
ls <program_path>
# 检查Python解释器
python --version
- 检查工作目录
# 确认目录存在
ls <working_dir>
# 创建目录
mkdir -p <working_dir>
- 检查权限
# 查看文件权限
ls -l <program_path>
# 修改权限
chmod +x <program_path>
- 检查端口
# Windows
netstat -ano | findstr <port>
# Linux
netstat -tulpn | grep <port>
- Python相关
# 检查依赖
pip list
# 安装依赖
pip install -r requirements.txt
- 进程启动但健康检查失败
- 日志显示连接超时或拒绝
- 程序未完全启动
- 健康检查URL配置错误
- 防火墙阻止
- 程序内部错误
- 调整等待时间
process:
init_wait_secs: 10
health_check_timeout_secs: 10
- 验证健康检查
# 手动测试健康检查
curl http://localhost:<port>/health
- 检查防火墙
# Windows
netsh advfirewall show currentprofile
# Linux
sudo ufw status
- 健康检查总是失败
- 检查URL是否正确
- 确认端口是否正确
- 查看应用日志是否有错误
- 检查防火墙设置
- 检查是否开启代理导致检查失败(尤其是502 Bad Gateway)
- 进程频繁重启
- 重启次数超过限制
- 无法正常退出
- 程序内存泄漏
- 配置不当
- 系统资源不足
- 依赖服务未就绪
- 调整重启策略
processes:
web:
auto_restart: true
max_restarts: 5
start_delay: 5
- 监控资源使用
# 查看进程状态
fuckrun list --watch
# 系统资源
top # Linux
taskmgr # Windows
# 查看FuckRun系统日志
fuckrun logs --system
# 实时跟踪
fuckrun logs --system -f
# 查看标准输出
fuckrun logs -n <进程名>
# 查看错误日志
fuckrun logs -n <进程名> --type stderr
# 查看特定日期的日志
fuckrun logs -n <进程名> --date 2024-01-22
- 系统日志:
.fuckrun/logs/<日期>/fuckrun.log
- 进程日志:
.fuckrun/processes/<进程名>/logs/<日期>/{stdout,stderr}.log
- 状态显示运行但实际未运行
- PID不匹配
- 无法停止进程
- 重置进程状态
# 停止进程
fuckrun stop -n <进程名>
# 清理状态文件
rm -f .fuckrun/processes/<进程名>/state.json
# 重新启动
fuckrun start -n <进程名>
- 强制停止
# Windows
taskkill /F /PID <pid>
# Linux
kill -9 <pid>
- 主进程退出后子进程未退出
- 无法正常停止守护进程
- 日志输出异常
- 检查进程树
# Windows
wmic process where ParentProcessId=<pid> get ProcessId,CommandLine
# Linux
pstree -p <pid>
- 清理僵尸进程
# 查找相关进程
ps aux | grep <进程名>
# 停止所有相关进程
pkill -f <进程名>
- 提示配置文件不存在
- 配置未生效
- 格式错误
- 检查配置文件位置
# 查看配置文件
cat config.yaml
# 验证YAML语法
python -c "import yaml; yaml.safe_load(open('config.yaml'))"
- 使用默认配置
# 复制示例配置
cp config.yaml.example config.yaml
# 编辑配置
vim config.yaml
- 程序无法访问环境变量
- 环境变量未生效
- 值不正确
- 检查环境变量配置
processes:
web:
env:
PORT: 8000
DEBUG: true
- 验证环境变量
# 启动时打印环境变量
fuckrun start -n web --env DEBUG=true
- 需要管理员权限
- UAC限制
- 防火墙阻止
- 以管理员身份运行
- 调整UAC设置
- 添加防火墙规则
- 文件权限
- SELinux限制
- systemd集成
- 调整文件权限
chmod +x /path/to/program
chown user:group /path/to/program
- SELinux设置
# 检查SELinux状态
sestatus
# 允许程序访问网络
semanage port -a -t http_port_t -p tcp <port>
- 内存不足
- CPU使用率高
- 文件描述符耗尽
- 检查系统限制
# 查看限制
ulimit -a
# 调整限制
ulimit -n 65535 # 文件描述符
- 监控资源使用
# 实时监控
fuckrun list --watch --filter min-cpu=50
# 查看详细状态
fuckrun status -n <进程名>
- 优化配置
process:
# 调整进程优先级
priority: normal
# 限制资源使用
max_memory: 1024m
max_cpu: 50