pgrepについての質問です。


% java hoge
とした後に
% pgrep -fl ”java hoge”
とするのと
% ps ax | grep ”[j]ava hoge”
とするのでは、
出力されるプロセス数が違うのですが、何故でしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/11/29 11:27:26
  • 終了:--

回答(2件)

id:satobon No.1

satobon回答回数111ベストアンサー獲得回数22004/11/29 11:31:51

ポイント25pt

URLはダミーです。

それって、pgrepそのものが引っかかってるか、そうでないかの差ではないかと…。

違ってるのは、pgrepがはいってるか、入ってないかの差じゃないですか?

id:diabah_blue

回答ありがとうございます。

ですが、違うと思います。

実際にやっていただければ分かると思うのですが、

表示されるPIDのリストにはpgrepは含まれません。

(私の環境だけかもしれませんけど)

以下、質問の内容を

% pgrep -fl ”[j]ava hoge”

% ps ax | grep ”[j]ava hoge”

との比較に改めさせていただきます。

よろしくお願いいたします。

2004/11/29 13:10:26
id:hmom No.2

hmom回答回数46ベストアンサー獲得回数02004/11/29 23:32:59

ポイント25pt

> 動作中の pgerp と pkill プロセスは、自分自身には決してマッチしない。

とありますので、

前者はpgrepは含まれず、

後者はgrepが含まれているということでは?

# こんなコマンドあったんですね。確かに自分自身がひっかかるのは不便な場合もありそうです。

数の違いは一つですか?

(wcにパイプしてみると簡単に分かります。)

id:diabah_blue

回答ありがとうございます。

% pgrep -fl ”[j]ava hoge” の結果の行数は9

% ps ax | grep ”[j]ava hoge” の結果の行数は1

です。

また、繰り返しになりますが、

pgrep実行時はその仕様により表示されるPIDのリストにはpgrep自身は含まれまず、

grep実行時は正規表現上のトリックにより表示されるPIDのリストにはgrep自身は含まれません。

----

自己解決したのでこちらに追記します。

結局ただのスレッドでした。

つまり下記2つの結果の行数は一致します。

% pgrep -fl ”[j]ava hoge”

% ps axm | grep ”[j]ava ReadKey”

以上です。お騒がせしました。

2004/11/30 07:21:39

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません