1

PHP を使用してローカル システムまたはサーバーで現在実行されている各プロセスの CPU 使用率を取得するにはどうすればよいですか。

tasklistPHP 内からコマンド プロンプト コマンドを使用して、プロセス名とメモリ情報を取得するにはどうすればよいですか。

例は次のとおりです。

Name of Processor     Memory usage
Edit plus              6.1 MB
Google Chrome           20 MB
Command Prompt           5 MB
Tomcat                 2.1 MB
4

3 に答える 3

1

回答の仕様を変更したため、他の回答を削除したり、他の人にとって受け入れられる解決策になる可能性がある他の回答を削除したりしたくありません。

コマンド プロンプト コマンドを使用してプロセス データを取得する必要がある場合は、PHP からこのアプリケーションを呼び出すことができます。tasklistexec()

<?php
exec('tasklist.exe', $outputLines);

foreach($line in $outputLines)
{
    //Extract information from String...
}
?>

次に、文字列操作を使用して必要な情報を抽出する必要があります。正規表現は良い選択かもしれません。

于 2014-04-03T15:16:35.853 に答える
1

Win32ps と呼ばれるWindows プロセスに関するレポート用の PECL パッケージがあります( PHP マニュアル ページ| PECL ページ)。

この拡張機能を使用すると、次のように実行中のプロセスのリストを取得して出力できるはずです。

<?php
$procs = win32_ps_stat_proc();

foreach($proc in $procs)
{
    echo basename($proc['exe']) . " - " . $proc['mem']['working_set_size'] . "\r\n";
}
?>

これは、Microsoft Windowsのみのソリューションです。

于 2014-04-03T09:58:10.810 に答える
1

Windows 以外のシステムの場合(この回答が提供された後に Windows タグが追加されました):

おそらく、サーバーオペレーティングシステムがこれにポロバイドするサービスを使用し、PHP経由でアクセスしたいと思うでしょう。Unix マシンを使用している場合は、おそらく ps のようなコマンド ライン ツールがあります。

ps aux | less

ここを読んでps ください

これを実行し、php でexecを使用して出力を取得できます。

echo exec('ps aux | less');

PHP の文字列操作関数を使用して、その出力を簡単に解析できます。

于 2014-04-03T09:48:03.670 に答える