2011-09-15 15 views
1

Java APIを使用してリモートマシンに接続しているため、実行中のプロセスが表示されます。Linux ps出力フォーマット仕様

いずれかのプロセスを強制終了できることが条件の1つです。

は今、私は、コマンドを実行しているプロセスのリストを返す

ps aux | grep javaを実行しています。

例えば、

 
root  330 0.2 0.0  0 0 pts/0 Z 08:42 0:11 [java] 

上記の出力には仕様が分かっていますか?上記の行をオブジェクトに変換する必要があります。ここで330はプロセスIDです。引数付きのコマンドは、grepのために必要されている場合は

ps -eo pid,comm | grep java | awk -F" " '{print $1}' 

:(例えばPIDとコマンドのみ)

ps -ef | grep java | awk -F" " '{print $2}' 

またはフォーマットを自分で指定します。

答えて

3

その名前のプロセスのpidでintressetedされている場合は、pgrepをチェックします。


例:

$ pgrep sshd 
791 
22956 
23060 
3

はたぶん、あなたはこのようなものを使用することができます

ps -eo pid,command | grep java | awk -F" " '{print $1}' 
1

私のUbuntuシステムでは、psには次の基準があります:

STANDARDS このPSは以下に適合しています。

1 Version 2 of the Single Unix Specification 
2 The Open Group Technical Standard Base Specifications, Issue 6 
3 IEEE Std 1003.1, 2004 Edition 
4 X/Open System Interfaces Extension [UP XSI] 
5 ISO/IEC 9945:2003</blockquote> 

しかし、あなたはすでに維持され、すでにプロセス名と、そのような程度理解しているpgrepに問題をオフロードすることを検討してください。デフォルトでは、ちょうどこのようなマッチングプロセスID、1行に1つずつ、::

$ pgrep apache 
3990 
22244 
22388 
22391 
22476

がそれよりも解析が容易に取得していませんそれはあなたに多くの、はるかに単純な出力を提供します。あなたが詳細を参照する必要がある場合は、-lフラグを検討するかもしれない:

$ pgrep -l apache 
3990 apache2 
22244 apache2 
22388 apache2 
22391 apache2 
22476 apache2

またpsは、そのデータを探す場所である、/proc filesystemを見て検討してください。

+0

感謝!治療は:) – Makky