workerman 启动报错,already running 。

0

workerman 启动报错,already running 。按照手册 killall php , ps aux|grep WorkerMan|awk '{print $2}'|xargs kill -9,显示没有那个进程,在测试服务器上可以跑起来,上正式服务器就显示已经在运行。看论坛有些朋友说是之前运行脚本执行过就会有成功记录,不知道是不是跟这个相关

已邀请:

six

赞同来自:

ps auxf 看下workerman进程在不在

walkor

赞同来自:

找到workerman的pid文件删掉。pid默认位置与workerman源码目录的上一层目录。

walkor

赞同来自:

那就设置下pid存储位置,比如


...
Worker::$pidFile='/your/path/wm.pid';
Worker::runAll();

注意不要放到/tmp目录下
然后启动。

a392223903

赞同来自:

尝试 killall -9 php

lxy

赞同来自:

我之前不小心把正在运行的程序删除了,用同个端口号重新写个程序,启动时和你的错误一样,我最后的办法是新建一个被删除文件同名的程序,程序中使用的端口号和之前一致,然后使用php xxx.php stop

alex343136121

赞同来自:

我也遇到这个问题了。
一开始下载了Workerman,并按照demo随便写了一个start.php,运行后显示already running。
后来删除了上述的workerman项目和log,又去下了个Gateway,直接运行start.php,也只显示以下一句话:


Workerman[/var/www/html/GatewayWorker/start.php] already running


而且此时使用ps aux|grep WorkerMan之类的操作时根本找不到进程。因此也不知道是根据什么判定的。


和楼上某位老哥一样,将Worker::lock()方法直接返回true就能正常运行了。
换台服务器也是完全可行的。就是不知道还有哪里有问题。。

要回复问题请先登录注册