ウェブサイト検索

Kill、Pkill、および Killall を使用して Linux プロセスを強制終了する方法


Linux では、プロセスの強制終了とは、実行中のプログラムの実行を終了または停止することを指します。実行中の各プロセスにはプロセス ID (PID) と呼ばれる一意の識別番号が割り当てられ、システムが現在アクティブなプロセスを追跡するのに役立ちます。

この記事では、Linux の強制終了プロセスと、Linux のさまざまなツールやコマンドを使用してプロセスを見つけて終了する方法について説明します。

Linux プロセスとは何ですか

簡単に言えば、プロセスはシステム上で現在実行されているプログラムのようなもので、各プロセスには独自の特別な ID (PID) 番号があります。ただし、実行中のプログラムまたはプロセスが誤動作したり、応答を停止したり、システム リソースを過剰に消費したりする場合があります。

そのような場合は、プロセスを停止または「強制終了」する必要があり、 ここで強制終了コマンドが役に立ちます。

キルコマンドとは

kill」 コマンドは、ユーザーが現在実行中のプロセスにシグナル (停止または終了) を送信して、正常に終了するか強制的に終了するように指示できる重要なユーティリティです。

kill コマンドは、Linux システム上の次のようなさまざまなプログラムのアクティビティを管理および制御する必要がある場合に役立ちます。

  • 自動化されたプロセスを停止するため。
  • 誤って開始されたプロセスを停止すること。
  • メモリを過剰に使用するプロセスを停止します。
  • Linux で実行中のプロセスを強制的に終了します。
  • バックグラウンドで実行されているプロセスを停止します。

/usr/bin から kill コマンドを使用すると、プロセスを識別する pkill を使用してプロセス名でプロセスを強制終了するための追加機能が提供されます。彼らの名前。

プロセス ID またはプロセス名の検索方法

実行中のプロセスを終了する前に、次の ps コマンドを使用してプロセス ID (PID) または名前を特定することが重要です。このコマンドは、システム上で実行中のすべてのプロセスに関する情報を PID (プロセス ID) およびその他の情報とともに表示します。

ps -ef

特定のプロセス名 PID を検索する場合は、システム上で実行されているすべてのプロセスをリストし、結果をフィルタリングして「mariadb<」という用語を含むプロセスのみを表示する grep コマンドを使用できます。」。

ps -ef | grep mariadb

あるいは、次のようにpgrep コマンドを使用して、プロセスの PID を名前で直接検索することもできます。

pgrep mariadb

Linux でプロセスを強制終了する方法

プロセスを強制終了、停止、または終了する前に、アクセス許可について検討してください。 root ユーザーの場合は、どのプロセスでも停止できますが、通常のユーザーの場合は、コマンドの前に「sudo」を追加するか、「」で root に切り替える必要があります。 su」を使用して終了コマンドを使用します。

kill コマンドの一般的な構文は次のとおりです。

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

kill コマンドの場合、シグナル名は次のようになります。

上記の動作から明らかなように、

  • SIGTERM は、プロセスを強制終了するデフォルトの最も安全な方法です。
  • SIGHUP は、プロセスを強制終了する方法として SIGTERM よりも安全性が低くなります。
  • SIGKILL は、上記 3 つの方法の中で最も安全でない方法で、保存せずにプロセスを終了するプロセスを強制終了します。

Linux では、プロセスを停止、終了、または一時停止するために使用できるさまざまなシグナルがあります。次のコマンドを使用すると、利用可能なすべての Kill シグナルをその名前と対応する番号とともに一覧表示できます。

kill -l

利用可能なシグナルは複数ありますが、ほとんどの場合、SIGKILL (9)SIGTERM (15) のみを使用します。

プロセスを強制終了するには、プロセスのプロセス ID を知る必要があります。 プロセスはプログラムのインスタンスです。プログラムが開始されるたびに、そのプロセスに対して一意のPIDが自動的に生成されます。

Linux のすべてのプロセスには pid があります。 Linux システムの起動時に開始される最初のプロセスは – init プロセス であるため、ほとんどの場合、値「1」が割り当てられます。

Init はマスター プロセスであり、この方法では強制終了できません。これにより、マスター プロセスが誤って強制終了されることがなくなります。 Init は自身を強制終了することを決定し、許可します。強制終了は単にシャットダウンの要求にすぎません。

先に進んでkill コマンドを実行する前に、いくつかの重要な点に注意してください。

  • ユーザーは自分のプロセスをすべて強制終了できます。
  • ユーザーは別のユーザーのプロセスを強制終了することはできません。
  • ユーザーは、システムが使用しているプロセスを強制終了することはできません。
  • root ユーザーは、システムレベルのプロセスおよび任意のユーザーのプロセスを強制終了できます。

mariadb プロセス PID を強制終了するには、次のように kill コマンドを使用します。

kill -9 3383

上記のコマンドは、pid=3383 を持つプロセスを強制終了します。PID はプロセスの数値です。

同じ機能を実行する別の方法は、次のように書き換えることができます。

kill -SIGTERM 3383

同様に、「kill -9 PID」は「kill -SIGKILL PID」に似ており、その逆も同様です。

プロセスが終了したことを確認するには、ps コマンドを再度使用します。

ps -ef | grep mariadb

Linux で複数のプロセスを強制終了する方法

Linux でプロセス ID (PID) を使用して複数のプロセスを終了するには、kill コマンドを関連するPID 番号と組み合わせて使用します。

まず、ps または pgrep コマンドを使用して、終了するプロセスの PID を特定します。

ps aux | grep apache2
OR
pgrep apache2

PID を取得したら、kill コマンドを使用して PID を終了します。

kill -9 PID1 PID2 PID3

Linux でプロセス名を使用してプロセスを強制終了する方法

プロセス名を使用してプロセスを終了するには、pkill コマンドを使用します。これは、プロセス名またはパターンを指定できる kill コマンドのバージョンです。プロセスを見つけます。

強制終了する前にプロセス名を認識しておく必要があり、間違ったプロセス名を入力すると失敗する可能性があります。

pkill mysqld

プロセスに多すぎるインスタンスと複数の子プロセスがある場合はどうなるでしょうか。プロセス番号の代わりにプロセス名を引数として受け取るコマンド「killall」があります。

Killall コマンドを使用して Linux でプロセスを強制終了する方法

killall と kill の主な違いは、killall は名前でプロセスを終了できるのに対し、kill コマンドはプロセス ID (pid) に依存することです。

すべての mysql インスタンスと子プロセスを強制終了するには、次のようにコマンドを使用します。

killall mysqld
OR
pkill mysqld

以下のコマンドのいずれかを使用して、プロセスが実行中かどうかのステータスをいつでも確認できます。

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

htop やgnome-system-monitor などの Linux グラフィカル システム監視ツールは、プロセスを検索して強制終了するための使いやすいインターフェイスを提供します。

結論

私からはここまでです。別の興味深く有益なトピックについては、すぐに戻ってきます。それまでは、Tecmint に注目して接続し、健康に気を付けてください。コメントセクションで貴重なフィードバックを共有することを忘れないでください。