Appearance
概述
EBAOZU V4 基于 ThinkPHP 8.0 与 Swoole 4 运行常驻内存服务。在修改了 PHP 业务代码(非热更新模式)、配置文件(.env / config/)或安装了新扩展后,必须重启 Swoole 服务使改动生效。
生产环境重启方式(推荐)
在生产环境中,Swoole 通常由 Supervisor(堡塔进程守护) 管理,推荐通过守护进程管理器执行重启:
宝塔面板图形化操作
- 进入宝塔面板 -> 【软件商店】 -> 打开【Supervisor管理器】。
- 找到 EBAOZU 对应的守护进程(如
ebaozu_v4)。 - 点击操作栏的【重启】按钮。
- 观察状态是否保持为【运行中(RUNNING)】,并查看日志确认无启动报错。
命令行 Supervisor 重启
bash
supervisorctl restart ebaozu_v4
supervisorctl restart all
# 查看状态
supervisorctl status本地开发与调试模式操作
在开发或无守护进程的环境中,可直接使用 ThinkPHP 命令行工具启动 Swoole 服务:
bash
# 进入项目根目录
cd /www/wwwroot/your-project
# 启动服务(前台运行,可直接查看输出报错)
php think swoole注意命令集范围:本版 think-swoole(v4.0.10)只注册了 swoole(启动服务)与 swoole:rpc-interface 两个命令,不存在 php think swoole reload、php think swoole stop、php think swoole restart 子命令;执行这类命令会因命令不接受多余参数而直接报错。停止与重载请使用下面的方式:
bash
# 查看主进程 PID(Swoole 常驻进程的主进程)
ps -ef | grep "[p]hp .*think swoole"
# 平滑重载 Worker(仅重载业务代码,不断开端口监听):向主进程发送 SIGUSR1
# 该信号即框架内置热更新所用的重载方式
kill -USR1 <主进程PID>
# 停止服务:向主进程发送 SIGTERM
kill -TERM <主进程PID>异常排查:端口占用与僵尸进程清理
若执行重启后提示端口被占用(如 bind() failed: Address already in use)或服务未能正常启动:
查找占用端口的残留进程(以默认端口
20697为例):bashlsof -i :20697 # 或 netstat -tlpn | grep 20697强制清理残留进程:
bashpkill -9 -f "php think swoole"重新在 Supervisor 或命令行启动服务:
bashsupervisorctl restart ebaozu_v4