ここから本文です

Linux基本コマンドTips:【 pidof 】コマンド――コマンド名からプロセスIDを探す

7/28(金) 8:25配信

@IT

 本記事は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。

「pidof」コマンドと「ps」コマンドを組み合わせて詳細情報を表示したところ

●pidofコマンドとは?

 実行中のプロセスの中から、コマンド名を使ってプロセスIDを探すコマンドです。複数のコマンドを同時に指定することも可能です。

□□
●pidofコマンドの書式
pidof [オプション] コマンド名
※[ ]は省略可能な引数を示しています。コマンド名は複数指定可能
□□

●pidofの主なオプション

短いオプション 意味
-o PID 指定したプロセスIDを持つプロセスを表示しない(「-o %PPID」でpidofを呼び出したシェルまたはシェルスクリプトのプロセスIDという意味になる)
-s 同名のプロセスがあってもプロセスIDを1つだけ返す
-x 指定したスクリプトを実行しているシェルのプロセスIDも返す(スクリプトの中で、「pidof -x $0」のように使用できる)

●コマンド名を指定してプロセスIDを表示する

 「pidof コマンド名」で指定したコマンドのプロセスIDを表示します(画面1)。「pidof コマンド1 コマンド2 コマンド3……」のように複数指定することも可能です。

□□
●コマンド実行例
pidof man
pidof man less
□□

 さらに詳細を表示したい場合はpsコマンドを使用するとよいでしょう。例えば、「ps p `pidof コマンド名`」で、pidofコマンドの実行結果をpsコマンドの引数にできます。psコマンドの「p」オプションは表示するプロセスIDを指定するために使っています。

 以下の実行画面では、先にpidofを実行し、「ps ep `!!`」で直前コマンドの実行結果(つまりpidof)をpsコマンドの引数にしています※※。psコマンドの「e」オプションは、コマンド名の後に環境変数などを表示するオプションです。ここでは、「e」オプションと「p」オプションを使用しています。

※※「!!」は直前に実行したコマンドを意味する。「`(バッククオート)」で囲まれた部分は、実行時にコマンドの結果で置き換えられる。

●特定のプロセス以外のプロセスIDを表示する

 「pidof -o プロセスID コマンド名」で、指定したプロセスIDを除いたプロセスを表示します。「pidof -o %PPID」では、pidof自身の親プロセス(pidofを呼び出したシェルやシェルスクリプト)を除外します。

□□
●コマンド実行例
pidof -o 3955 bash
(bashの全てのプロセスIDを表示、ただしプロセスIDが3955のものは除く)
pidof -o %PPID bash
(bashの全てのプロセスIDを表示、ただしpidofを実行したbashは除く)
□□


●筆者紹介
○西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。

最終更新:7/28(金) 8:25
@IT