Good Day Community成员,
我在Laravel 5.7中使用Symfony Process类,并尝试使用pgrep获取PHP的进程ID。
在Mac OsX上,它按预期工作,返回的输出是PHP pid的数组。
在我们用于生产的Debian服务器上,我没有通过代码获得此输出,但是如果通过SSH终端运行命令pgrep php,我确实会得到期望的pid。实例化新流程时,用['ls']替换['pgrep','php']确实返回了预期的文件数组。
$process = new \Symfony\Component\Process\Process(['pgrep','php']);
try {
$process->run();
}
catch (\Symfony\Component\Process\Exception\ProcessFailedException $e) {
dump($e->getMessage()); //nothing
}
dump($process->isSuccessful()); //false
dump($process->getOutput()); //""
dump($process->getStatus()); //"terminated"
dump($process->getCommandLine()); //"'pgrep' 'php'"
dump($process->getExitCode()); // 1
我希望Debian上的输出是PHP的pid,但是输出是一个空字符串。在MacOsX上,代码按预期工作,我得到了一组pid。