Linuxでは、コマンドラインから(何らかの理由で)プロセスを強制終了する必要がある場合は、killコマンドを使用できます。このコマンドでは、終了しようとしているプロセスのIDを入力として渡す必要があります。しかし、PIDを指定せずにプロセスを強制終了する方法もあることをご存知ですか?
はい、ツールがあります- pkillと呼ばれます -それはあなたがこれを行うことを可能にします。この記事では、わかりやすい例を使用して、このコマンドの基本について説明します。ただし、その前に、ここでのすべての例がUbuntu18.04LTSおよびDebian10マシンでテストされていることを言及する価値があります。
Linuxpkillコマンド
Linuxのpkillコマンドは、基本的にプロセスを強制終了するためのより簡単な方法です。その構文は次のとおりです。
pkill [options] pattern
そして、このツールについてのマニュアルページの内容は次のとおりです。
pkill - signal processes based on name and other attributes
以下は、pkillコマンドがどのように機能するかについてのより良いアイデアを提供するQ&Aスタイルの例です。
Q1。 pkillコマンドの使用方法は?
基本的な使用法は非常に簡単です。必要なのは、プロセス名を入力として「pkill」を実行することだけです。
たとえば、「gedit」プロセスを強制終了しようとしている場合は、次の方法でpkillを使用して実行できます。
pkill gedit
それでおしまい。上記のコマンドを実行すると、geditプロセス(実行中の場合)が強制終了されます。
Q2。 pkillに別のシグナルを送信させる方法は?
この記事の冒頭ですでに述べたように、pkillコマンドは基本的にプロセスにシグナルを送信します。デフォルトでは、送信されるのはSIGTERMシグナルですが、必要に応じて、-signalコマンドラインオプションを使用してシグナルを変更できます。
例:
pkill --signal SIGKILL
gedit
Q3。完全なコマンドラインに基づいてプロセスを強制終了する方法は?
デフォルトでは、入力名(パターン)はプロセス名と照合されます。ただし、必要に応じて、代わりにpkillを完全なコマンドラインに一致させることができます。これは、-fコマンドラインオプションを使用して実行できます。
たとえば、私のシステムで2つのpingコマンドが実行されているとします。以下は、psコマンド出力からの抜粋です。
...
root 19253 0.0 0.1 9180 2916 pts/1 S+ 19:24 0:00 ping google.com
root 19331 0.0 0.1 9180 2912 pts/2 S+ 19:25 0:00 ping howtoforge.com
...
ここで、pkillを使用して「pinggoogle.com」コマンドのみを強制終了することが要件であるとします。
次のようにpkillを使用する場合:
pkill ping
その後、両方のコマンドが強制終了されます。したがって、これを回避するには、-fコマンドラインオプションを使用できます。使用方法は次のとおりです。
pkill -f "ping google.com"
最初のターミナルウィンドウでコマンドを実行しました:
pingプロセスが実行されていた2番目のターミナルウィンドウが表示されます:
したがって、前述のコマンドが実行されたとき、入力として言及されたコマンドのみが強制終了されました。
Q4。 pkillの大文字と小文字を区別しないようにするにはどうすればよいですか?
デフォルトでは、pkillコマンドは大文字と小文字を区別します。つまり、大文字と小文字の名前の扱いが異なります。ただし、必要に応じて、pkillで大文字と小文字を区別しないようにすることができます。これは、-iコマンドラインオプションを使用して実行できます。
pkill -i [process-name]
Q5。 pkillを使用してsyslogに構成ファイルを再読み込みさせる方法は?
これを実現するには、次の方法でpkillコマンドを使用できます。
pkill -HUP syslogd
したがって、pkillは、プロセスを強制終了する場合に非常に便利なコマンドです。このコマンドが提供するコマンドラインオプションのいくつかについては、すでに説明しました。これらの練習が終わったら、manページにアクセスしてコマンドの詳細を学ぶことができます。