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,需要看看怎样处理更为优雅。

sunshineshuai

赞同来自:

我也遇到此类问题了!我的这两种方式获取的参数是相同的,但是也是启动不了


php artisan workman start --d
----------------------- WORKERMAN -----------------------------
Workerman version:4.0.19 PHP version:7.3.4
------------------------ WORKERS -------------------------------
worker listen processes status


打印两种方式获取到的参数是一样的,但是也启动不了


array:4 [
0 => "artisan"
1 => "workman"
2 => "start"
3 => "d"
]
array:4 [
0 => "artisan"
1 => "workman"
2 => "start"
3 => "d"
]

要回复问题请先登录注册