workerman以守护进程的方式运行正常,开启了。但是隔天查看。status显示not run的。这是什么原因造成的 大佬们有类似的经历吗
首先这个肯定不是workerman的问题,最大的可能是程序发生了内存泄漏,所有的workeman进程都被系统干掉了,可以通过检查 workerman.log 里是否有异常报告以及运行系统命令 dmesg 看看是否有 OOM 关键字来进行排查。
workerman.log显示大量的exit with status 65280,这个状态吗是什么意思 大佬
手册有说明: 65280:导致这个退出码的原因是业务代码有致命错误,例如调用了不存在的函数、语法错误等,具体错误信息会记录到Worker::logFile指定的文件中,也可以在php.ini中error_log指定的文件中(如果有指定的话)找到。
@614:嗯嗯,好的 谢谢大佬。我先按照你说的自检一下
这个65280已经很明显的说明了你的业务代码自身有问题,从业务代码自身排查解决即可,另外最好设定下 Worker::logFile,以便排查具体错误。
@614:恩。好的
我遇到过这种情况,后来发现workerman是root启动的,然后用了www账户运行status显示not run。我的是权限问题,改成用root运行status就好了。不知道你的是不是这种情况。
还有如果系统重启过,workerman也会停止。用top 命令能得到系统重启时间
嗯嗯,好的 谢谢。我也看下
首先这个肯定不是workerman的问题,最大的可能是程序发生了内存泄漏,所有的workeman进程都被系统干掉了,可以通过检查 workerman.log 里是否有异常报告以及运行系统命令 dmesg 看看是否有 OOM 关键字来进行排查。
workerman.log显示大量的exit with status 65280,这个状态吗是什么意思 大佬
手册有说明:
65280:导致这个退出码的原因是业务代码有致命错误,例如调用了不存在的函数、语法错误等,具体错误信息会记录到Worker::logFile指定的文件中,也可以在php.ini中error_log指定的文件中(如果有指定的话)找到。
@614:嗯嗯,好的 谢谢大佬。我先按照你说的自检一下
这个65280已经很明显的说明了你的业务代码自身有问题,从业务代码自身排查解决即可,另外最好设定下 Worker::logFile,以便排查具体错误。
@614:恩。好的
我遇到过这种情况,后来发现workerman是root启动的,然后用了www账户运行status显示not run。我的是权限问题,改成用root运行status就好了。不知道你的是不是这种情况。
还有如果系统重启过,workerman也会停止。用top 命令能得到系统重启时间
嗯嗯,好的 谢谢。我也看下