Workerman5.2.3安装后status命令怎么使用

酷丽吖_4133

酷丽吖_4133

2026-10-24

375人浏览

原创

能执行 php start.php status 并返回含 connections、total_request、mem_usage、state 的有效表格,说明 workerman 已成功运行;它通过 unix socket 读取共享内存统计信息,比 ps 更可靠,但依赖 -d 模式、正确 pid 文件路径及 socket 权限。

workerman5.2.3安装后status命令怎么使用

php start.php status 是 Workerman 5.2.3 安装后查看运行状态的标准且唯一推荐方式,无需额外安装或配置插件。它直接读取主进程共享内存中的实时统计值,低干扰、高可信,是线上环境判断服务是否健康的核心入口。


✅ 正确使用前提(三步必须确认)

  • 启动时加 -d 参数:
    php start.php start -d
    不带 -d 是前台调试模式,不会创建管理 socket,status 必然失败。

  • *确保 `/tmp/workerman..status文件存在且可读**: 默认路径为/tmp/workerman.status(或带 worker 名的变体,如/tmp/workerman.ChatGateway.status)。 若 stop 后再 start -d 报错,大概率是旧文件残留 → 执行rm /tmp/workerman..status` 清理。

  • 启动用户与执行 status 的用户一致:
    比如用 www 用户启动,就用 www 执行 php start.php status;若用 root 启动,普通用户执行会因权限被拒。


? status 命令输出关键字段怎么看

字段 含义 健康信号 风险信号
connections 当前活跃连接数 有波动(随客户端接入/断开变化) 长期接近 Worker::$maxConnection(如设 1000,常驻 980+)→ 连接未释放或心跳缺失
total_request 该 worker 累计处理请求数 缓慢但持续增长(哪怕每秒 1–2 次) 完全停滞,而其他 worker 正常增长 → 可能卡死在 onMessage 或异常未捕获
mem_usage(MB) 当前内存占用 稳定在几 MB~几十 MB(如 12–45 MB 区间小幅浮动) 缓慢爬升(2h 从 20→70 MB)→ 内存泄漏;突增(15→90 MB)→ 大对象未 unset 或全局缓存失控
state 进程状态(ok / busy / stopping) 多数为 ok,偶发短暂 busy( busy 持续 >30 秒 → 同步阻塞(如 file_get_contents、PDO 查询无超时、curl 同步调用)

⚠️ 注意:state=busy 不等于“出问题”,要看持续时间;短时 busy 是正常业务处理,长期 busy 才需介入。

MiniMax
MiniMax

MiniMax是一款AI工具,推出的AI智能问答助手。

下载

❌ 常见报错及快速修复

  • No pid file
    → 服务根本没启动,或启动时漏了 -d。重试:php start.php start -d

  • Can not connect to master process 或 Permission denied
    → socket 文件权限不对。检查 /tmp/workerman.*.status* 属主是否匹配当前执行用户;或统一改用业务用户启动。

  • 输出为空或只有表头
    → connections=0 且 total_request=0 长时间不动 → 检查 onMessage 回调是否抛了未捕获异常(Workerman 会静默终止该 worker 接收新请求)。


? 补充诊断:什么时候用 connections 命令?

php start.php connections 是可选辅助命令,仅在以下情况启用:

  • Workerman ≥ 3.5.0(5.2.3 完全支持)
  • 你用的是 TCP/UDP Worker(HTTP/WebSocket 默认不开启连接级统计,需手动设置 $worker->connection_class = \Workerman\Connection\TcpConnection::class;)
  • 目标是排查:客户端假死、send_queue_size 堆积、close_wait 连接堆积等网络层问题

⚠️ 线上慎用:高峰期执行可能短暂卡住主进程。建议先低峰执行,配合 head -50 或 grep "send_queue_size>0" 过滤。


status 命令本身不依赖版本号显式声明(5.2.3 已完全兼容无参 status),也不需要 --status 或 workerman --status 等旧式写法。只要满足守护进程、socket 可达、权限正确,一行命令就能拿到真实快照。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

2026.05.20

206

15

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

2026.05.20

222

12

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

2026.05.20

207

13

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

20

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

20

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

20

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

20

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

20

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

Workerman官方手册
Workerman官方手册

共0课时 | 0人学习

ThinkPHP5.1完全开发手册
ThinkPHP5.1完全开发手册

共0课时 | 0人学习