当我们使用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 @_@
答案 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()创建后台进程。"