[英]Why doesn't exec(“top”); work on Linux?
我試圖執行這個命令
echo exec("top");
和
echo exec("/usr/bin/top");
兩者都不起作用(返回空白輸出)
有人知道為什么嗎?
因為 top 是一個交互式程序,旨在在終端上運行,而不是從腳本中執行。 您可能希望使用 arguments 運行“ps”命令,該命令將按 CPU 利用率對 output 進行排序。 http://www.devdaily.com/linux/unix-linux-process-memory-sort-ps-command-cpu
你實際上可以調用 top 並回顯它的 output。 對我有用的代碼:
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% 減去空閑時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.