workerman以守护进程的方式运行正常,开启了。但是隔天查看。status显示not run的。这是什么原因造成的 大佬们有类似的经历吗

peter没有潘

workerman以守护进程的方式运行正常,开启了。但是隔天查看。status显示not run的。这是什么原因造成的 大佬们有类似的经历吗

3864 2 0
2个回答

blogdaren

首先这个肯定不是workerman的问题,最大的可能是程序发生了内存泄漏,所有的workeman进程都被系统干掉了,可以通过检查 workerman.log 里是否有异常报告以及运行系统命令 dmesg 看看是否有 OOM 关键字来进行排查。

  • peter没有潘 2019-11-04

    workerman.log显示大量的exit with status 65280,这个状态吗是什么意思 大佬

  • blogdaren 2019-11-04

    手册有说明:
    65280:导致这个退出码的原因是业务代码有致命错误,例如调用了不存在的函数、语法错误等,具体错误信息会记录到Worker::logFile指定的文件中,也可以在php.ini中error_log指定的文件中(如果有指定的话)找到。

  • peter没有潘 2019-11-04

    @614:嗯嗯,好的 谢谢大佬。我先按照你说的自检一下

  • blogdaren 2019-11-04

    这个65280已经很明显的说明了你的业务代码自身有问题,从业务代码自身排查解决即可,另外最好设定下 Worker::logFile,以便排查具体错误。

  • peter没有潘 2019-11-04

    @614:恩。好的

阿罗

我遇到过这种情况,后来发现workerman是root启动的,然后用了www账户运行status显示not run。我的是权限问题,改成用root运行status就好了。不知道你的是不是这种情况。

还有如果系统重启过,workerman也会停止。用top 命令能得到系统重启时间

年代过于久远,无法发表回答
🔝