swoole中可通过worker_name配置和cli_set_process_title函数设置Worker进程名称,便于识别和运维。1. 创建Swoole服务器时使用worker_name选项定义基础名称;2. 在WorkerStart回调中结合cli_set_process_title动态设置带编号的名称如my_worker_0;3. 需判断!$server->taskworker避免任务进程误设;4. 进程名在ps或top命令中显示,有助于多Worker或混合Task场景下的问题排查,但名称不宜过长以防系统截断。

Swoole 中可以通过修改 worker_name 配置项来设置 Worker 进程的自定义名称,方便在系统中识别不同类型的进程。这个功能对调试和运维非常有用。
设置 worker_name 配置
在创建 Swoole 服务器时,通过 worker_name 选项为 Worker 进程设置名称。该配置不会影响主逻辑,仅用于改变进程在 ps 或 top 命令中的显示名。
示例代码:
$server = new SwooleServer(“0.0.0.0”, 9501); $server->set([ ‘worker_num’ => 4, ‘worker_name’ => ‘my_worker’, // 设置 Worker 进程名称 ]); $server->on(‘WorkerStart’, function ($server, $worker_id) { // 可选:进一步根据 worker_id 区分命名 if (!$server->taskworker) { cli_set_process_title(“my_worker_{$worker_id}”); } }); $server->on(‘Receive’, function ($server, $fd, $reactor_id, $data) { $server->send($fd, “Hello”); }); $server->start();
使用 cli_set_process_title 动态命名
如果需要更精细控制,比如每个 Worker 显示不同的编号,可以在 WorkerStart 回调中使用 php 内置函数 cli_set_process_title()。
这样做可以实现类似 my_worker_0、my_worker_1 的命名效果。
注意点:
- 必须在 CLI 模式下运行
- 仅对当前进程有效,需在 WorkerStart 中调用
- 建议判断
$server->taskworker避免任务进程被误设
查看效果
启动服务后,在终端执行:
ps aux | grep my_worker
可以看到类似输出:
user 12345 0.0 0.2 234567 8901 ? S 10:00 0:00 my_worker_0
基本上就这些。合理命名有助于排查问题,尤其是在多组 Worker 或混合 Task 进程的场景下。注意不要设置过长的名称,避免系统截断。
以上就是Swoole怎么设置worker进程的自定义名称的详细内容,更多请关注php中文网其它相关文章!


