Члены сообщества Good Day,
Я использую класс Symfony Process в Laravel 5.7 и пытаюсь использовать pgrep для получения идентификаторов процессов PHP.
На Mac OsX он работает как положено, возвращаемый вывод, который я получаю, представляет собой массив pids PHP.
На сервере Debian, который мы используем для производства, я не получаю этот вывод через код, но если запустить команду pgrep php через терминал SSH, я получу pids, как и ожидалось.Замена ['pgrep', 'php'] на ['ls'] при создании экземпляра нового процесса возвращает массив файлов, как и ожидалось.
$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 будет pid (s) PHP, но на выходе получается пустая строка.На MacOsX код работает как положено, я получаю массив pids.