2014-01-27 2 views
1

Symfony\Component\Process\Process을 사용할 때 명령은 누가 실행합니까?심포니 프로세스는 누가 실행합니까?

whoami에서 Process까지 명령을 시도했지만 void가 반환됩니까 ???

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

답변

2

예,이 명령을 실행하는 사용자 또는 웹 서버의 사용자로 실행됩니다. 코드가 약간 불완전한 것으로 보입니다. 출력을 얻으려고하기 전에 $process->run();을 추가하는 것이 좋습니다.

+0

아. 나는 $ process-> run();을 추가하는 것을 잊었다. 내 실수. 죄송합니다 @[email protected] – GusDeCooL

0

나는 프로세스가 웹 서버가 실행되는 모든 사용자로 실행되도록 거의 보장합니다. 예를 들어 아파치를 실행하고 있다면 다음을 실행 해보십시오 :

ps aux | egrep '(apache|httpd)' 

어떤 사용자 아파치가 실행 중인지 알아내는 터미널에서. 내 돈은 프로세스가 실행되는 사용자로서 아파치 나 httpd에있다. 희망이 도움이됩니다.

0

백그라운드 프로세스를 만들려면 설명서에서 start() 대신 run()을 사용하는 것이 좋습니다. 프로세스를 실행하기 위해 run()을 사용하는 대신 run()이 블로킹되어 프로세스가 완료 될 때까지 기다릴 수 있습니다. 프로세스를 실행하기 위해 run()을 사용하면 process_max_time이 프로세스를 종료시킬 수 있습니다. start()는 백그라운드 프로세스를 만듭니다. "