Symfony Process像谁一样运行?

时间:2014-01-27 09:35:59

标签: symfony symfony-process

当我们使用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 @_@

3 个答案:

答案 0 :(得分:2)

是的,它以用户运行此命令或您的网络服务器用户的身份运行。 你的代码似乎有点不完整。我建议在尝试获取输出之前添加$process->run();

答案 1 :(得分:0)

我几乎保证该进程可以像运行Web服务器的用户一样运行。例如,如果你正在运行apache,请尝试运行:

ps aux | egrep '(apache|httpd)'

在您的终端中发现正在运行的用户apache。我的钱将在apache或httpd上作为Process运行的用户。希望有所帮助。

答案 2 :(得分:0)

如果要创建后台进程,从文档中更好地使用start()而不是run()。如果使用run()

创建进程,则process_max_time可能会终止进程

"不是使用run()来执行进程,而是可以启动()它:run()阻塞并等待进程完成,start()创建后台进程。"