【 pidof 】コマンド――コマンド名からプロセスIDを探す:Linux基本コマンドTips(130)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。
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(画面1)
pidof man less
さらに詳細を表示したい場合はpsコマンド(第6回)を使用するとよいでしょう。例えば、「ps p `pidof コマンド名`」で、pidofコマンドの実行結果をpsコマンドの引数にできます。psコマンドの「p」オプションは表示するプロセスIDを指定するために使っています。
以下の実行画面では、先にpidofを実行し、「ps ep `!!`」で直前コマンドの実行結果(つまりpidof)をpsコマンドの引数にしています (画面2) ※※。psコマンドの「e」オプションは、コマンド名の後に環境変数などを表示するオプションです。ここでは、「e」オプションと「p」オプションを使用しています。
※※「!!」は直前に実行したコマンドを意味する。「`(バッククオート)」で囲まれた部分は、実行時にコマンドの結果で置き換えられる。
特定のプロセス以外のプロセスIDを表示する
「pidof -o プロセスID コマンド名」で、指定したプロセスIDを除いたプロセスを表示します(画面3)。「pidof -o %PPID」では、pidof自身の親プロセス(pidofを呼び出したシェルやシェルスクリプト)を除外します。
コマンド実行例
pidof -o 3955 bash(画面3)
(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ラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.