Laravel中的Symfony Process在Mac上输出pgrep结果,但在Linux Debian上却没有

时间:2019-05-28 07:56:04

标签: php laravel symfony grep debian

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。

0 个答案:

没有答案