$ ps aux | grep -i ssh
USER 4364 0.0 0.0 9004 1032 ? Ss 12:20 0:00 ssh -v -fND localhost:4000 USERNAME@SERVER-IP-ADDRESS
$ pgrep localhost:4000
なぜこれがうまくいかないのですか?
答え1
デフォルトでは、pgrep(1)
プロセス名のみが一致します。コマンドライン全体を一致させるには、次の-f
オプションを使用します。
$ pgrep -f localhost:4000
答え2
見てpgrep のマニュアルページ。これはpsと複数の列を実行してからテキスト出力をgrepingするためのエイリアスではありません。実際、特定のフィールドの値を検索します。デフォルトでは、次のように見ます。プロセス名検索して戻るときPID。オプションを追加してコマンドライン全体を検索できます-f
。実行中のプロセスの端末やグループIDの一致など、役に立つ可能性がある他のいくつかのフィールドを検索することもできます。