【问题标题】:Symfony Process run as who?Symfony 进程以谁的身份运行?
【发布时间】:2014-01-27 09:35:59
【问题描述】:

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

【问题讨论】:

    标签: symfony symfony-process


    【解决方案1】:

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

    【讨论】:

    • 啊,我明白了。我忘了加$process->run();。我的错。对不起@_@
    【解决方案2】:

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

    ps aux | egrep '(apache|httpd)'
    

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-19
        • 2014-04-26
        • 2015-04-24
        相关资源
        最近更新 更多