写真提供:seiho
kill コマンドは、プロセスにシグナルを送信したり、プロセスを強制終了したりするために使用されます。通常、プロセスの PID がわかっている kill -SIGNAL PID を使用します。
効果的にプロセスを強制終了する方法は他にもあります — 名前でプロセスを強制終了、名前の一部を指定してプロセスを強制終了、カーソルでプロセスを指定してプロセスを強制終了など、
この記事では、プロセスを強制終了する 4 つの方法を確認します。
1. Kill Command – PID を指定してプロセスを強制終了
以下の kill 規則はすべて、指定されたプロセスに TERM シグナルを送信します。シグナルには、シグナル名またはシグナル番号のいずれかを使用できます。プロセスの pid を検索し、それを kill の引数として指定する必要があります。
$ kill -TERM pid $ kill -SIGTERM pid $ kill -15 pid
例:firefox プロセスを終了します。
$ ps -ef | grep firefox 1986 ? Sl 7:22 /usr/lib/firefox-3.5.3/firefox $ kill -9 1986
2. Killall コマンド – 名前でプロセスを強制終了
PID でプロセスを指定する代わりに、プロセスの名前を指定できます。その名前で複数のプロセスが実行されている場合、それらすべてが強制終了されます。
例:すべての firefox プロセスを強制終了します
$ killall -9 firefox
3. Pkill コマンド – 名前に基づいてプロセスにシグナルを送信します
完全な名前または部分的な名前を指定することにより、任意のプロセスにシグナルを送信できます。したがって、シグナルを送信するプロセスの PID を調べる必要はありません。
例:名前に sample を含むすべてのプロセスに SIGTERM を送信します。
$ pkill sample
キルの例:
シグナルを送信する前に、一致するプロセスのプロセス ID とプロセス名を表示する「pgrep -l」を使用して、基準に一致するすべてのプロセスを確認できます。
この例では、すべてのプロセスが信号をその PID とともに signal-log に記録するように設計されています。
$ pgrep -l sample 12406 sample-server.p 12425 sample-server.p 12430 sample-garbagec $ pkill -USR1 sample $ cat signal-log Name: ./sample-server.pl Pid: 12406 Signal Received: USR1 Name: ./sample-server.pl Pid: 12425 Signal Received: USR1 Name: ./sample-garbagecollector.pl Pid: 12430 Signal Received: USR1
注: 指定する名前の部分は、プロセス名の最初の 15 文字以内の文字にする必要があります。
4. Xkill コマンド – X リソースでクライアントを終了
xkill は、誤動作しているプログラムを強制終了する最も簡単な方法です。プロセスを強制終了するには、十字カーソルを表示する xkill を開始します。ウィンドウを左カーソルでクリックすると、そのプロセスが強制終了されます。
$ xkill Select the window whose client you wish to kill with button 1.... xkill: killing creator of resource 0x1200003
注: 実際、xkill は XServer にクライアントを終了するように指示します。