Appearance
选型建议
在宝塔面板管理 EBAOZU V4 的 Swoole 常驻进程时:
- ✅ 官方推荐方案:Supervisor 管理器(堡塔进程守护)
- ⚠️ 不推荐方案:宝塔应用管理器 / PM2
为什么不推荐宝塔应用管理器?
- 进程信号传递问题:宝塔应用管理器对 PHP CLI 常驻子进程的监控和信号捕获(如
SIGTERM、SIGUSR1)支持不完善,在重启或停止时容易产生孤儿进程或僵尸进程。 - 多进程并发管理:Swoole 包含 Master 进程、Manager 进程和多个 Worker/Task 进程,Supervisor 能更完整地捕获整个进程树状态并实现崩溃自愈重启。
推荐的 Supervisor 管理器配置
在宝塔面板【软件商店】安装【Supervisor管理器】后,点击【添加守护进程】,按如下参数配置:
| 配置项 | 推荐配置值 | 说明 |
|---|---|---|
| 名称 | ebaozu_v4(或自定义名称) | 进程标识,英文字母与下划线 |
| 启动用户 | www | 必须使用 www 用户,避免权限问题 |
| 运行目录 | /www/wwwroot/你的项目目录 | 必须是包含 think 文件的项目根目录 |
| 启动命令 | php think swoole | 启动 Swoole 服务的 CLI 指令 |
| 进程数量 | 1 | 保持为 1(Swoole 内部会自动管理多工作进程) |
常见操作与故障恢复
进程无法停止或端口被占用
若守护进程显示停止但端口仍被占用:
bash
pkill -9 -f "php think swoole"
lsof -i :20697重启 Supervisor 服务
若 Supervisor 管理器面板出现异常卡死:
bash
systemctl restart supervisord
# 或宝塔环境
/etc/init.d/supervisor restart