このコマンドを実行しようとしていました
echo exec("top");
と
echo exec("/usr/bin/top");
どちらも機能しません (空白の出力が返されます)
誰かが理由を知っていますか?
このコマンドを実行しようとしていました
echo exec("top");
と
echo exec("/usr/bin/top");
どちらも機能しません (空白の出力が返されます)
誰かが理由を知っていますか?
top は、スクリプトから実行するのではなく、端末で実行することを意図した対話型プログラムであるためです。出力を CPU 使用率でソートする引数を指定して 'ps' コマンドを実行することをお勧めします。 http://www.devdaily.com/linux/unix-linux-process-memory-sort-ps-command-cpu
実際に top を呼び出して、その出力をエコーすることができます。私のために働いたコード:
passthru('/usr/bin/top -b -n 1');
-b - バッチ モードで実行中
-n 1 - 反復は 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% からアイドル時間を引いたもの。