私は現在システム(Linux)上で実行中のプロセスのPIDのリストを維持しています。これから、このPIDからプロセスの詳細を取得できれば素晴らしいと思います。私はsyscall.Getrusage()を次のように使いました。行くしかし、期待した結果が得られません。
どうすればいいですか?
ベストアンサー1
これは質問者が望んでいたこととまったく同じではないかもしれません(各プロセスIDにどのような詳細が必要かという明確な情報はあまりありません)が、BASHコマンドps -p $PID
(追伸略してプロセスステータス)
デフォルトのオプションでは、ps -p $PID
次の結果が返されます。
- PID: プロセスIDをエコーします
- TTY: 制御端末の名前(ある場合)
- TIME: プロセスが実行以降に使用した CPU 時間 (例: 00:00:02)
- CMD: プロセスを呼び出したコマンド (例
java
)
このプロセスIDに関する詳細情報は、-oオプションフラグを使用して表示できます。リストについては、このドキュメントページ。
以下に、特定のプロセス PID の完全なコマンドを引数、ユーザー、グループ、およびメモリ使用量とともに示す例を示します (複数の -o フラグがそれぞれペアを取ること、およびコマンドが大量の空白を埋め込んで出力することに注目してください)。
ps -p $PID -o pid,vsz=MEMORY -o user,group=GROUP -o comm,args=ARGS
ヒント: コンソールで人間が読める出力の場合は、args を最後のオプションにします。通常、args は最も長くなり、そうでない場合は短く切り詰められる可能性があります。