連載
» 2017年07月27日 05時00分 UPDATE

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

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

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、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


画面1 画面1 pidofコマンドを実行したところ プロセスIDが表示された

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

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

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


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


特定のプロセス以外のプロセス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は除く)


画面3 画面3 特定のプロセスIDを除外してpidofコマンドを実行したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

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


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。