Процесс Symfony в Laravel выводит результаты pgrep на Mac, но не на Linux Debian - PullRequest
1 голос
/ 28 мая 2019

Члены сообщества 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...