onManagerStart是Swoole中Manager进程启动时触发的回调,用于设置进程名、记录PID等初始化操作。

onManagerStart 是 Swoole 中的一个回调函数,它在 Manager 进程启动时触发。理解它的作用,需要先了解 Swoole 的进程模型。
什么是 Manager 进程?
在 Swoole 的多进程模式中(比如使用HttpServer 或 Server),存在三种主要进程:
- Master 进程:负责网络事件调度和管理其他进程。
- Manager 进程:由 Master 创建,负责管理和回收 Worker 进程 和 Task 进程。
- Worker/Task 进程:实际处理业务逻辑的进程。
onManagerStart 的用途
当 Manager 进程成功启动后,Swoole 会自动调用你注册的onManagerStart 回调函数。这个时机适合做一些与进程管理相关的初始化或监控操作。
常见用途包括:
- 记录 Manager 进程 PID:方便后续监控或信号控制。
-
设置进程名称:通过
swoole_set_process_name()让进程在ps命令中显示更清晰的名称。 - 监听进程异常:配合日志系统,判断 Manager 是否意外退出。
- 启动辅助监控脚本:某些运维场景下可在此触发外部脚本。
使用示例
以下是一个简单的使用示例:$server = new Swoole\Http\Server("0.0.0.0", 9501);
$server->on("ManagerStart", function ($server) {
// 设置 Manager 进程的名称
swoole_set_process_name("php-swoole-manager");
// 可以将 PID 写入文件
file_put_contents("/tmp/swoole_manager.pid", $server->manager_pid);
});
$server->on("Request", function ($request, $response) {
$response->end("Hello World");
});
$server->start();
注意事项
这个回调只在 非单进程模式 下生效(即daemonize = false/true 但不是 reactor_num=1 && worker_num=1 的单线程模式)。
不要在这个回调里做耗时操作,否则会影响 Worker 进程的启动。
基本上就这些。










