ps -ax | grep だと自分自身も出力されてしまう

投稿者: Anonymous

とあるデーモンがどれだけ起動しているか調べる際、ps -ax | grep 〈デーモン名〉 を使うと grep 自身も検索にひっかかってしまいます。

これが地味にややこしいです。自分自身は除外するように検索するにはどうすれば良いでしょうか?

$ ps -ax | grep emacs
  154 ?        Ss     0:00 emacs --daemon
 5502 tty1     R      0:00 grep --color=auto emacs    # ← この行を出力したくない

Info: この投稿についたコメントから影響を受け、自分の知らないやり方がありそうだと思って投稿した質問です。

解決

別の方法1
昔からある商用 UNIX には入っていませんが ならたいてい pgrep というツールが入っています。

$ pgrep emacs

https://linuxjm.osdn.jp/html/procps/man1/pgrep.1.html
pgrep の検索は、動作中の自分自身にはマッチしない仕様なので楽です。

別の方法2
grepgrep にヒットするから気に入らないのであればもう一段階 grep を使って除外することができます。やや冗長ですね。

$ ps -aux | grep emacs | grep -v grep

https://linuxjm.osdn.jp/html/GNU_grep/man1/grep.1.html
grep のオプション -v はマッチしない場合を抽出です。

# オイラはこれで grep -v を覚えました。

回答者: Anonymous

Leave a Reply

Your email address will not be published.