読者です 読者をやめる 読者になる 読者になる

HYLOGICS

今後は各分室にコンテンツを移して、ここは雑記や暮らしを中心としたライフログ的な何かにしていく予定です。

Linuxでプロセスを検索するTIPS

Linux

前置き

作業中、複数のプロセスを立ち上げているのだけど何かしらプロセスの情報を調べたい。そんな時に最初に実行するのがプロセス名やPIDを調べる作業です。

オプションなしのpgrepの情報だけだと色々と物足りないシーンがあるわけで、ちょっとまとめてみました。

基本

サービスの稼働確認とかする時。何も考えずにpgrepで大体は事足ります。

[root@conoha ~]# pgrep sshd
1401
9127
9130

PIDだけだと不安

「本番機なので、PIDだけだと不安だしエビデンスにならない。プロセス名も併せて取得しておきたい!」

そんなときに-lオプションを使います。

[root@conoha ~]# pgrep -l sshd
1401 sshd
9127 sshd
9130 sshd

もっと詳細な情報が欲しい

「プロセス名だけだとどのプロセスが対象かわからない!もっと詳細が知りたい!」

仕方ないので初心に立ち返ってps -efで取得したプロセス一覧からgrepで検索してました。

客先ではよく使います。

[root@conoha ~]# ps -ef | grep sshd | grep -v grep
root      1401     1  0  2014 ?        00:00:00 /usr/sbin/sshd
root      9127  1401  0 20:08 ?        00:00:00 sshd: anonymous [priv]
anonymous    9130  9127  0 20:09 ?        00:00:00 sshd: anonymous@pts/0
root      9210  9162  0 20:13 pts/0    00:00:00 grep sshd

これはこういう風に置き換え可能。

[root@conoha ~]# ps -ef | grep [s]shd
root      1401     1  0  2014 ?        00:00:00 /usr/sbin/sshd
root      9127  1401  0 20:08 ?        00:00:00 sshd: anonymous [priv]
anonymous    9130  9127  0 20:09 ?        00:00:00 anonymous: gwuser@pts/0

このgrepの使い方は以下のサイトで知りました。

スポンサードリンク

あまりタイプしたくない

というわけで仕方なくpsgrepで凌いでいたのですが、タイプ数多いのは鬱陶しいのでやっぱりpgrepだけで終わらせたいなあと思って検証作業中にぼんやりmanpage眺めてたら記載がありました。

OPTIONS

       -f     The pattern is normally only matched against the process name.  When -f is set, the full command line
              is used.

-fオプションを実際に使ってみるとこんな感じです。

[root@conoha ~]# pgrep -lf sshd
1401 /usr/sbin/sshd
9127 sshd: anonymous [priv]
9130 sshd: anonymous@pts/0

これが一番シンプルで良いですね。