0

0

Workerman进程意外退出怎么排查_错误日志与master进程日志分析【解答】

絕刀狂花

絕刀狂花

发布时间:2026-03-12 22:08:00

|

610人浏览过

|

来源于php中文网

原创

状态码256表明PHP子进程因致命错误(如禁用函数调用、扩展段错误)被内核强制终止,对应信号1,需检查core dump和禁用函数配置。

workerman进程意外退出怎么排查_错误日志与master进程日志分析【解答】

Workerman 进程退出状态码为 256,基本可以确定是 PHP 发生了致命错误(如扩展崩溃、段错误),而非业务代码 throw 的异常。

exit with status 256 就该查 core dump 和禁用函数

这个退出码不是 Workerman 自己定义的,而是 Linux 进程退出时由内核返回的:PHP 子进程因严重错误(比如调用了被禁用的函数、扩展 segfault)被强制终止,shell 层面收到的是 256(即 1 ,表示子进程以信号 1 退出,但更常见的是 PHP 崩溃后返回 256,等价于 coredump)。

  • 先运行 curl -Ss http://www.workerman.net/check.php | php —— 它会检测 pcntlposixsockets 是否启用,还会报出哪些函数被 disable_functions 拦住了(比如 pcntl_forkposix_kill 被禁会导致 master 无法管理 worker,直接退出)
  • 检查 PHP 配置:php -i | grep disable_functions,重点确认 pcntl_*posix_* 系列没被禁
  • 如果服务器开了 core dump,去 /proc/sys/kernel/core_pattern 看路径,找对应 core 文件,用 gdb php core.xxx 查崩溃点(但多数生产环境关了这个)

日志里找不到 error?那就得开 Config::$debug = true + error_reporting(E_ALL)

Workerman 默认不把 PHP 错误打到 stdout,尤其在守护进程模式下,display_errors=Off 会让所有 warning/fatal 消失得干干净净。

天工大模型
天工大模型

中国首个对标ChatGPT的双千亿级大语言模型

下载
  • start.php 顶部加两行:ini_set('display_errors', 'on'); error_reporting(E_ALL);
  • 紧接着加上:use Workerman\Config; Config::$debug = true; —— 这能让 Workerman 输出 worker 启动/退出、信号接收、重载等内部动作
  • 别依赖 var_dump()echo:它们输出位置不可控,容易和 Workerman 自身日志混在一起;改用 file_put_contents('/tmp/debug.log', "xxx\n", FILE_APPEND); 更稳
  • 注意:Config::$debug 在新版中主要影响框架行为日志(如 “worker xxx started”),业务逻辑报错仍靠 PHP 原生错误机制

master 进程退出 ≠ worker 异常,要看 ps aux | grep start.phptail -f workerman.log

Workerman 是 master-worker 模型,master 退出整个服务就挂了,但 worker 退出可能只是某个子进程崩了——这两者日志位置、排查路径完全不同。

  • master 日志默认写入 workerman.log(同级目录),内容包括启动、reload、stop、子进程异常退出事件;worker 日志默认不落盘,除非你显式调用 Worker::log() 或自己写文件
  • ps aux | grep start.php 看进程树:如果只剩一个 master 进程(无 worker),说明 worker 全挂了或根本没起来;如果连 master 都没了,大概率是启动脚本第一行就 fatal error 了(比如 require 缺文件)
  • 宝塔用户特别注意:面板里“运行”按钮起的服务,实际是以面板用户身份跑的,很可能没权限读配置、连端口、fork 进程 —— 务必切到命令行用 php start.php start -d 手动试一次

真正卡住人的地方,往往不是日志没开,而是日志写到了你看不到的地方:比如 workerman.log 被写进了 root 目录、error_log 走了 php-fpm 的配置、或者容器里 /tmp 不可写导致 file_put_contents 失败。动手前,先确认「日志到底有没有产生」,比猜原因快得多。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1564

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

716

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

300

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

800

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

588

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

570

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

314

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

400

2023.07.25

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号