请问各位这是什么进程啊?

zxhtx

每次启动了workerman都会出现下面那个进程,并且直接把cpu占满了,用kill命令杀掉这个进程后cpu就降下来了,杀掉这个进程似乎并没有影响程序私信功能啊还是可以继续聊天
WorkerMan: master process start_file=/www/wwwroot/socket.chaodashe.com/GatewayWorker/start.

阅读 225
3个回答

blogdaren
  1. 此进程是workerman启动后的主进程,主要用来负责监控管理子进程、信号管理等等核心工作,如果人为kill -9 掉主进程、但是子进程并没有被杀掉【这也是为何没有影响到聊天】,但是这将会导致产生的子进程处于失控状态,后续进程管理将会出现很多不可预料的错误。
  2. 所以不能直接kill -9 这个主进程,至于CPU被打满,那就排查为啥被打满了,另外主进程里不要有任何的业务逻辑。
  • zxhtx 2021-10-17

    大哥主进程是哪个文件?是start.php这个文件吗?start.php这个文件我没有动啊,所有代码我全部写在了Events.php文件里面

  • blogdaren 2021-10-18

    @7874:1. 题外话:我一贯主张技术概念不要乱用,比如进程就是进程、文件就是文件、一般意义上,进程它不可能是文件,文件它也不可能是进程等等,所以建议诸如此类的概念不要乱用,否则极容易给自己挖坑;

    1. 用ps命令或者htop, 查找command字段包含关键字“WorkerMan: master process.....”行,然后对应的pid就是对应的主进程ID
喵了个咪

debug方式运行(运行时)看下是不是有报错,我猜测是哪里代码写出了致命错误,然后进程不断重启,主进程就不断fork新进程导致主进程cpu彪高。

或者cpu彪高后运行 php start.php status 截图下,看看是不是有进程退出。

  • zxhtx 2021-10-20

    大佬截图我发出来了,调试方式运行时一直报下面图片里面的错误。
    感谢大佬点拨,用调试模式顺利的找到原因了,原因是php的函数被禁用了几个,导致进程循环重启把cpu给整满了!感谢!!!

zxhtx

  • blogdaren 2021-10-20

    这个问题已经被问烂了,解决方案:
    定位到php.ini,然后找到含有关键字disable_functions的那行,如果图省事的话直接将其值设置为空即可,严肃的做法是将截图里凡是提示被禁用的函数全部移除。

  • zxhtx 2021-10-30

    @614:ok了,之前不知道用debug模式查看,绕了个大圈子,哈哈哈,感谢!