Symfony Процесс запускается как кто?

Когда мы используем Symfony\Component\Process\ProcessКоманду запустить как кто?

Я попробовал команду whoami через Process, но вернуть пустоту???

$return = exec('whoami');
echo $return."\n"; // return [myname]
$process = new Process('whoami'); // The symfony process
echo $process->getOutput(); // return nothing @_@

3 ответа

Решение

Да, он запускается от имени пользователя, запустившего эту команду, или от пользователя вашего веб-сервера. Ваш код кажется немного неполным. Я предлагаю добавить $process->run(); прежде чем пытаться получить вывод.

Я почти гарантирую, что этот Процесс запускается от имени любого пользователя вашего веб-сервера. Если вы используете Apache, например, попробуйте запустить:

ps aux | egrep '(apache|httpd)'

В вашем терминале, чтобы узнать, какой пользователь Apache работает как. Мои деньги были бы на apache или httpd как пользователь, под которым запускается Process. Надеюсь, это поможет.

Из документации лучше использовать start () вместо run (), если вы хотите создать фоновый процесс. Process_max_time может убить ваш процесс, если вы создадите его с помощью run ()

"Вместо того, чтобы использовать run () для выполнения процесса, вы можете запустить () it: run () блокирует и ждет завершения процесса, start () создает фоновый процесс".

Другие вопросы по тегам