protected static function lock()
{
$fd = \fopen(static::$_startFile, 'r');
if ($fd && !flock($fd, LOCK_EX)) {
static::log('Workerman['.static::$_startFile.'] already running.');
exit;
}
}
Worker启动之前会调用php的flock函数,
如果启动文件无法打开或者flock失败则会返回 already running
但是在nfs文件系统中,文件通过fopen以'r'的模式打开,再调用php的flock始终是返回false
所以无论是要执行start、status还是reload,在命令被解析之前代码都会在Worker:lock 这里结束,并提示already running
另外,在不更换文件系统类型的前提下,尝试用 w 模式打开打开文件,Worker是可以正常启动的
触发的系统环境
Linux #32~18.04.1-Ubuntu
php版本:7.2.32
暂时把锁机制去掉了。请更新到4.0.9或者后续更高版本