protected static function lock()
{
$fd = \fopen(static::$_startFile, 'r');
if ($fd && !flock($fd, LOCK_EX)) {
static::log('Workerman['.static::$_startFile.'] already running.');
exit;
}
}
Worker啟動之前會調(diào)用php的flock函數(shù),
如果啟動文件無法打開或者flock失敗則會返回 already running
但是在nfs文件系統(tǒng)中,文件通過fopen以'r'的模式打開,再調(diào)用php的flock始終是返回false
所以無論是要執(zhí)行start、status還是reload,在命令被解析之前代碼都會在Worker:lock 這里結(jié)束,并提示already running
另外,在不更換文件系統(tǒng)類型的前提下,嘗試用 w 模式打開打開文件,Worker是可以正常啟動的
觸發(fā)的系統(tǒng)環(huán)境
Linux #32~18.04.1-Ubuntu
php版本:7.2.32