Laravel 8 + workerman 无法以daemon方式启动!

0

php artisan worker start --d
Workerman[artisan] start in DEBUG mode
--------------------------------------------- WORKERMAN ---------------------------------------------
Workerman version:4.0.14 PHP version:7.4.9


升级以后无法再以守护进程方式启动

已邀请:

Endy

赞同来自: zhouaini528

artisan的option明确说明要以--为前缀:Options, like arguments, are another form of user input. Options are prefixed by two hyphens (--) when they are specified on the command line.
又分析了一下,handle中示例是以global $argv来赋值参数,Worker.php中取的是$_SERVER['argv'],前者赋值后产生了一个深拷贝副本,所以并没有改变到后者的值!!!!
截图
截图


所以修改Command中的argv赋值方法为直接向$_SERVER['argv]进行赋值,问题解决!

walkor

赞同来自:

--d 改成 -d试下

Endy

赞同来自:

截图


源码改了两个地方暂时没问题了,看上去是handle里对argv的赋值处理并没有能够传递到Worker.php,需要看看怎样处理更为优雅。

要回复问题请先登录注册