
この記事では、Linuxのpkill
の基本について説明します。 コマンド。
pkill
は、指定された基準に基づいて実行中のプログラムのプロセスに信号を送信するコマンドラインユーティリティです。プロセスは、完全な名前または部分的な名前、プロセスを実行しているユーザー、またはその他の属性で指定できます。
pkill
コマンドはprocps
の一部です (またはprocps-ng
)パッケージ。ほぼすべてのLinuxディストリビューションにプリインストールされています。 pkill
基本的にpgrep
のラッパーです 一致するプロセスのリストのみを出力するプログラム。
pkill
の使用方法 コマンド#
pkill
の構文 コマンドは次のとおりです:
pkill [OPTIONS] <PATTERN>
一致する<PATTERN>
拡張正規表現を使用して指定されます。
オプションなしで呼び出された場合、pkill
15
を送信します (TERM
)指定された名前と一致するすべての実行中のプログラムのPIDに信号を送ります。たとえば、すべてのFirefoxプロセスを正常に停止するには、次のコマンドを実行します。
pkill -15 firefox
コマンドは0
を返します 少なくとも1つの実行中のプロセスが要求された名前と一致する場合。それ以外の場合、終了コードは1
です。 。これは、シェルスクリプトを作成するときに役立ちます。
一致したプロセスに別のシグナルを送信するには、pkill
を呼び出します --signal
を使用したコマンド オプションの後に、数値または記号の信号名が続きます。シグナルを送信する別の方法は、pkill
を実行することです。 ハイフン(-
)が前に付いた信号名または番号が続きます 。
kill -l
を使用します 使用可能なすべての信号を一覧表示するコマンド。
最も一般的に使用される信号は次のとおりです。
-
1
(HUP
):プロセスをリロードします。 -
9
(KILL
):プロセスを強制終了します。 -
15
(TERM
):プロセスを正常に停止します。
信号は、次の3つの方法で指定できます。
- 数字を使用する(例:-1)
- 「SIG」プレフィックス付き(例:-SIGHUP)
- 「SIG」プレフィックスなし(例:-HUP)。
たとえば、実行するNginxprocessesをリロードするには:
pkill -HUP nginx
pkill
正規表現を使用してプロセス名を照合します。 pgrep
を使用することは常に良い考えです 信号を送信する前に、一致したプロセスを印刷するコマンド。たとえば、名前に「ssh」が含まれているすべてのプロセスを一覧表示するには、次のようにします。
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
名前が検索パターンとまったく同じであるプロセスにのみシグナルを送信する場合は、次を使用します。
pkill '^ssh$'
カレット(^
)文字列の先頭で文字が一致し、ドル$
最後に。
デフォルトでは、pkill
プロセス名とのみ一致します。 -f
の場合 オプションを使用すると、コマンドは完全な引数リストと照合されます。コマンドにスペースが含まれている場合は、コマンド全体を引用してください:
pkill -9 -f "ping 8.8.8.8"
-u
を使用します pkill
に指示するオプション 特定のユーザーによって実行されているプロセスを照合するには:
pkill -u mark
複数のユーザーを指定するには、名前をコンマで区切ります。
pkill -u mark,danny
オプションと検索パターンを組み合わせることもできます。たとえば、KILL
を送信します ユーザー「mark」の下で実行され、名前に「gnome」が含まれているすべてのプロセスに、次のように通知します。
pkill -9 -u mark gnome
最も最近(最も古い)または最も最近(最も新しい)開始されたプロセスのみを表示するには、-n
を使用します (最新の場合)または-o
(最も古い)オプション。
たとえば、最近作成した画面を強制終了するには:
pkill -9 -n screen
結論#
pkill
コマンドは、さまざまな基準に基づいて実行中のプログラムに信号を送信するために使用されます。
pkill
の詳細については コマンドを実行するには、pkillのマンページにアクセスするか、man pkill
と入力します。 ターミナルで。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。