我试图执行这个命令
echo exec("top");
和
echo exec("/usr/bin/top");
两者都不起作用(返回空白输出)
有人知道为什么吗?
我试图执行这个命令
echo exec("top");
和
echo exec("/usr/bin/top");
两者都不起作用(返回空白输出)
有人知道为什么吗?
因为 top 是一个交互式程序,旨在在终端上运行,而不是从脚本中执行。您可能希望使用参数运行“ps”命令,该参数将按 cpu 利用率对输出进行排序。 http://www.devdaily.com/linux/unix-linux-process-memory-sort-ps-command-cpu
您实际上可以调用 top 并回显其输出。对我有用的代码:
passthru('/usr/bin/top -b -n 1');
-b - 以批处理模式运行
-n 1 - 只有一次迭代
如果你想把它放在一个变量中:
ob_start();
passthru('/usr/bin/top -b -n 1');
$output = ob_get_clean();
ob_clean();
我用了:
$cpu = preg_split('/[\s]+/', shell_exec('mpstat 1 1'));
$cpu = 100-$cpu[42];
100% 减去空闲时间。