1

当我们使用Symfony\Component\Process\Process时,命令以谁的身份运行?

我尝试了命令whoamiProcess但它返回无效???

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

3 回答 3

2

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

于 2014-01-27T15:34:00.130 回答
0

如果要创建后台进程,最好从文档中使用 start() 而不是 run()。如果您使用 run() 创建 process_max_time 可能会杀死您的进程

“而不是使用 run() 来执行一个进程,你可以 start() 它:run() 正在阻塞并等待进程完成, start() 创建一个后台进程。”

于 2014-05-15T07:29:17.373 回答
0

我几乎可以保证 Process 以您的网络服务器运行的任何用户身份运行。例如,如果您正在运行 apache,请尝试运行:

ps aux | egrep '(apache|httpd)'

在您的终端中发现 apache 以哪个用户身份运行。作为 Process 运行的用户,我的钱将用于 apache 或 httpd。希望有帮助。

于 2014-01-27T13:00:05.747 回答