Linuxでkillとpkillを使用して応答しないプロセスを終了する方法

特に古いハードウェアで実行している場合、応答しないプログラムを処理するのは難しい作業になる可能性があります。その場合、システムのフリーズが一般的な問題になります。幸いなことに、Linuxで応答しないプロセスを強制終了する方法はたくさんあります。

killコマンドとpkillコマンドは、端末から応答しないゾンビプロセスを終了するためのシンプルで効果的なソリューションを提供します。以下のセクションでは、killとpkillを使用してLinuxでハングしたプロセスを強制終了する方法について説明します。

killを使用して応答しないプロセスを終了する

Linuxのkillコマンドを使用すると、応答しないプロセスを簡単に終了できます。プロセスに終了信号を送信します。デフォルトでは、killはシグナル番号15で表されるSIGTERMシグナルを送信します。次の例では、killを使用して、PIDが27065のプロセスを停止します。

 kill 27065

ユーザーは、信号の名前または番号を指定することにより、他の信号を送信できます。たとえば、以下のkillコマンドは、シグナル番号9で表されるSIGKILLシステムシグナルを使用してゾンビプロセスを停止します。

 kill -9 27065
kill -SIGKILL 27065

SIGTERMとSIGKILLの違いは、プロセスがSIGTERMシグナルをキャッチして無視できることです。ただし、SIGKILLはプロセス処理の影響を受けず、プログラムを即座に強制終了します。

以下のkillコマンドを使用して、使用可能なすべてのシグナルのリストを表示できます。

 kill -l
kill -L

全体として、応答しないシステムプロセスを処理する場合は、SIGKILLの方が適しています。一方、ハングしたプログラムを正常に終了したい場合は、SIGTERMが最適です。

pkillを使用して応答しないプロセスを強制終了する

pkillコマンドを使用すると、名前に基づいてプログラムを強制終了できるため、Linuxでのプロセスの終了が簡単になります。たとえば、以下のコマンドは、pkillを使用してnanoプログラムを強制終了します。

 pkill nano

killと同様に、pkillもデフォルトでSIGTERMシグナルを送信します。応答しないプロセスをすぐに停止する場合は、SIGKILLシグナルを使用します。

 pkill -9 nano

プロセスのプロセスID(PID)を取得する方法

Linuxで応答しないプロセスを終了する場合、PID情報を持つことは非常に役立ちます。プロセスのPID番号はいくつかの方法で取得できます。次のコマンドは、grepコマンドとpsを使用して nanoという名前のプロセスのPIDを取得します。

 ps aux | grep nano

プロセスIDを直接吐き出すpgrepコマンドを使用することもできます。

 pgrep nano

Linuxでの応答しないプロセスの管理

killコマンドとpkillコマンドを使用すると、Linuxで応答しないプロセスを簡単に処理できます。ゾンビプロセス停止するために必要なのは、そのPIDとシェルへのアクセスだけです。ただし、別のユーザーに属するプロセスを強制終了する場合は、追加のsudo権限が必要になる場合があります。したがって、マルチユーザーシステムを使用している場合は、アクションを実行する前に、管理者にsudoersリストに追加するように依頼してください。