echo exec(“sudo top -n1 | awk'/ 30100 / {print $ 9}'”);不打印任何东西

时间:2015-04-11 18:53:45

标签: php linux

标题非常自我解释。我试图通过PHP中的PID获取进程的CPU使用率,以便我可以在网页中显示它。代码在终端中编写时效果很好,但在通过PHP完成时不会打印任何内容。

尝试

$cmd = "sudo top -n1 | awk '/30100/ {print $9}'";
echo exec($cmd);

其中30100是pid

$cmd = "sudo sh -c \"top -n1 | awk '/30100/ {print $9}'\" ";
echo exec($cmd);

我还试过$ var = exec()然后var_dump($ var),结果是字符串(0)

我想补充一点,我在系统上使用与此类似的其他命令,它们运行正常。一个例子是

$cmd = 'sudo -u server' . $sid . ' sh -c "pidof hlds_i686"';
$pid = exec($cmd);

返回进程pid

1 个答案:

答案 0 :(得分:1)

这可能是sderr / stdout问题,请尝试使用

$cmd = "sudo sh -c \"top -n1 | awk '/30100/ {print $9}'\" ";
echo shell_exec($cmd." 2>&1");