】コマンド——名前を指定してプロセスを終了させる本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセス名を指定してプロセスを終了させる「pkill」コマンドです。本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介してきます。今回は、プロセス名を指定してプロセスを終了させる「pkill」コマンドです。実行例プロセス名を指定してプロセスを終了させるうっかり使うと危ないpkillコマンド他のシグナルを送るにはpkillコマンドとは?「pkill」はプロセス名を指定して、終了シグナル(TERMシグナル)などの「シグナル」を送信するコマンドです。同じ用途のコマンドに「killall」(第8回)がありますが、対象を指定する方法や使用できるオプションが異なります。killallコマンドと違い、pkillコマンドの場合は対象とするプロセス名を正規表現で指定します※1。そのためpkillコマンドを使用する際には指定した内容が意図通りになっているかどうか、注意する必要があります。abc」の場合「名前にabcを含む全てのプロセス」が対象となります。killallの場合、正規表現で指定するには「-r」オプションが必要です。]は省略可能な引数を示しています。オプションかパターンのどちらかの指定が必要です。指定したプロセスIDが親であるプロセスを対象とする。指定したセッションIDであるプロセスを対象とする。指定したプロセスグループのいずれかに属するプロセスを対象とする。ID)によるプロセスを対象とする。user)によるプロセスを対象とする。user)によるプロセスを対象とする。指定した端末で実行されているプロセスを対象とする。指定した名前空間を対象とする。to」と指定すると対象とならない。名前」で指定した名前のプロセスを終了させます。top」で、topコマンドが終了します(画面1)。topコマンドを終了させたところ目次に戻るうっかり使うと危ないpkillコマンドpkillで指定する“名前”は、拡張正規表現(第10回)として解釈されます。top」の場合、実際の動作は“名前にtopを含むプロセスの終了”となります。pkillは、名前を使ってプロセスIDを表示する「pgrep」コマンド(第131回)とほとんど同じオプションが使用できるので※3、どのプロセスが対象になるのか、あらかじめpgrepで確認してから実行すると安心です。pkillの場合、表示内容を指定する「-d」「-l」「-a」の他、検索条件の否定を意味する「-v」(--inverse)オプションが使用できません。pkillとpgrepはpsコマンドと同じ「procps-ng」パッケージ(システム情報関連のパッケージ)に収録されています。pgrepはプロセスIDを表示するコマンドです。「-l」オプションを指定するとプロセス名も一緒に表示します。pkillでは「-e」オプションを使うと、実行の対象となったプロセスを事後表示できます。vi」であらかじめ確認しています。ここではプロセスIDが1139の「libvirtd」※4と、プロセスIDが4384の「vim」が見つかりました。CentOS環境では「vi」(ターミナルで使用できるテキストエディタ)というコマンド名で「/usr/bin/vim」が起動するようエイリアスが設定されています。permitted)」となり失敗する。4384」とすればよいことが分かります。killコマンドはプロセスIDを使ってプロセスを終了させるコマンドです。終了させたいプロセスを事前に確認後、終了したところ目次に戻る他のシグナルを送るにはpkillコマンドは、killコマンドやkillallコマンド同様、プロセスに「シグナル」を送るコマンドです。デフォルトではプロセスの終了命令「TERM」シグナルを送ります。通常コマンドの多くはTERMシグナルを受け取ると終了しますが、TERMでは終了できない状態となっている場合もあります。そのときは強制終了命令である「KILL」シグナルを使用します。名前」のように、シグナルの名前か数字を使って指定します※5。「SIGHUP」「SIGINT」のように“SIG”を付ける表記もあり、どちらも使用可能です。-l」で確認できます(第8回)。めぐみ)PC-9801NからのDOSユーザー。toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。