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

これらのLinuxコマンドを使用して、不正なプロセスを強制終了します

「プロセス」の意味を最も簡単な言葉で説明すると、それはシステム上の任意のアプリケーションまたはプログラムの実行中のインスタンスであるということです。ブラウジング、端末で動作する音楽の再生など、複数のアプリケーションを同時に実行している可能性があります。これらのアプリケーションに関連する多くのバックグラウンドプロセスが、ユーザーによって実行されます。

システムで実行されるすべてのアプリケーションまたはプログラムは、単一のアプリケーションに関連付けられた複数のプロセスを作成します。これが問題になる場合があり、これらのプロセスを取り除くことが唯一の選択肢です。

プロセスを「強制終了」することは、フォアグラウンドプロセスであれバックグラウンドプロセスであれ、進行中のプロセスを停止するためにLinuxが提供する便利なオプションの1つです。この記事では、次のようなコマンドを確認します 殺す, pkillkillall システム上のプロセスを強制的に終了します。

なぜプロセスを殺すのですか?

このチュートリアルを進める前に、プロセスを強制終了するという概念を理解することが重要です。殺害は概念を表現するための非常に残忍な方法に思えるかもしれませんが、それが比喩的に意味するのは、プロセスを強制的に中止することです。

では、なぜ進行中のプロセスを中止または終了するのでしょうか。複数のプロセスがバックグラウンドで実行されている場合、それらのすべてまたは一部が誤動作し、システムが誤動作する可能性があります。誤動作しているプロセスによってシステムがしばらくフリーズする可能性があるため、これにより進行中のタスクが遅延します。

場合によっては、誤動作しているすべてのプロセスを終了することが、システムの正常性を回復する唯一のオプションのように思われます。 Linuxでは、を使用してプロセスを強制終了できます pid またはプロセス名。

を使用して pgrep 指図

ほとんどのLinuxユーザーは grep 指図。 The pgrep コマンドは、の同様の行で使用できます grep.

pgrep コマンドを使用すると、 pid コマンドで指定された実行中のプロセスのこのコマンドは、 pkill 指図。

一般的な構文:

pgrep [オプション] [パターン]

で利用可能な重要なオプション pgrep 指図

オプション説明
-u特定のユーザーが所有するプロセスIDを一覧表示します
-c一致するプロセスの数を数える
-私プロセス名のみをリストする
-aプロセス名のフルパスを一覧表示します

の使用法を示しましょう pgrep 例を使用したコマンド。

pgrep -u gaurav gnome

ここでは、 pids ユーザー「gaurav」が所有するプロセスgnomeのオプション -u リストすることができます pids 特定のユーザーが所有するプロセスのこの場合、ユーザーgaurav。

出力:

gaurav @ ubuntu:〜$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav @ ubuntu:〜$

このチュートリアルを進めるにつれ、 pgrep コマンドは、プロセスが強制終了されたか、まだ実行中であるかを確認するのに役立ちます。

に移りましょう pkill コマンドとその実行。

使用する pkill 指図

あなたは使用することができます pkill Linuxでコマンドを実行して、プロセス名を使用してプロセスを強制終了します。知らなくても pid いくつかのプロセスの場合でも、を使用してその特定のプロセスを強制終了できます pkill 指図。

プロセスは、使用中に完全な名前または部分的な名前で指定できます。 pkill 指図。プロセスの名前の一部を入力しても、 pkill コマンドは、コマンドに入力した一致する名前で実行中のすべてのプロセスと一致します。

構文:

pkill [オプション] [process_name_pattern] 

:

を使用して現在実行中のプロセスを表示しましょう 指図。また、使用することができます ps プロセスを一覧表示するコマンド。

トップ-14:24:02アップ3:12、1ユーザー、負荷平均:0.29、0.48、0.58タスク:合計221、実行中1、スリープ172、停止0、ゾンビ1%CPU:5.6 us、1.0 sy 、0.0 ni、92.9 id、0.4 wa、0.0 hi、0.1 si、0.0 st KiB Mem:合計3928240、610456無料、2233152使用、1084632バフ/キャッシュKiBスワップ:合計4083708、3378884無料、704824使用。 1187268 avail Mem PID USER PR NI VIRT RES SHR S%CPU%MEM TIME + COMMAND 4077 gaurav 20 0 3312128 673480 118360 S 19.6 17.1 15:13.23 Web Content 3712 gaurav 20 0 3953008 453544 116476 S 4.0 11.5 9:28.39 MainThread 2010 gaurav 20 0 4084232 111096 45024 S 1.7 2.8 3:14.85 gnome-shell 1197 root 20 0 1039612 33704 22988 S 1.0 0.9 3:04.42 Xorg 1426 couchdb 20 0 3772396 16908 2520 S 0.7 0.4 1:50.83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0.7 0.6 0:06.84 gnome-terminal- 3915 gaurav 20 0 2804900 231524 111228 S 0.7 5.9 0:54.42Webコンテンツ4146gaurav 20 0 3017924 245304 120604 S 0.7 6.2 2:01.21Webコンテンツ4417gaurav 20 0 2964208 234396 119160 S 0.7 6.0 0 :59.90Webコンテンツ4860gaurav 20 0 3066800 372920 132544 S 0.7 9.5 0:48.20Webコンテンツ16007gaurav 20 0 41944 3780 3116 R 0.7 0.1 0:00.28トップ 

使用する コマンドは、端末に複数のプロセスを表示します。特定の名前でプロセスを表示してみましょう。を使用します grep 名前が文字列「mongo」と一致するプロセスを表示するコマンド。

トップ| grep -i mongo

ノート: ここでは、-iオプションを使用して、検索で大文字と小文字を区別しないようにしました。

このコマンドの出力には、「mongo」という名前に一致するプロセスが表示されます。

 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.22 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.25 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.27 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.29 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.31 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.33 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.36 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.38 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.40 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.43 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.45 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.48 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.3 0.1 1:03.49 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.52 mongod 1158 mongodb 20 0 288564 4848 1320 S 0.7 0.1 1:03.54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1.0 0.1 1:03.57 mongod

今、私たちは使用します pkill 「mongo」という名前のプロセスを強制終了するコマンド。

pkill mongo

このコマンドは、プロセスmongoを強制終了します。プロセスが強制的に終了されたかどうかは、を使用して確認できます。 pgrep を表示するコマンド pid ユーザーが指定した基準に従って実行中のプロセスの。

gaurav @ ubuntu:〜$ pgrep mongo gaurav @ ubuntu:〜$

このコマンドは値を返しません。これにより、プロセス「mongo」が pkill 指図。

で頻繁に使用されるオプション pkill 指図

使用中 pkill コマンドを適切かつ簡単に使用するには、前述のオプションが必要になります。 pkill 指図。

オプション説明
-fスペース、引用符、特殊文字を含む完全な引数と一致します
-u指定されたユーザーによって実行されているプロセスと一致するようにpkillプロセスに通知します
-1プロセスをリロードします
-9プロセスを強制終了します
-15プロセスを正常に中止します

もう1つの例を見てみましょう pkill を使用したコマンド -f オプション。

以下に示すように、現在端末で実行されているコマンドは2つあります。

ping bbc.com ping youtube.com

両方のプロセスは、 ping 指図。ここで、「ping youtube.com」という1つのプロセスのみを終了したい場合は、 -f オプションと pkill プロセス名のスペースと引用符を含む特定の名前のプロセスを強制終了するコマンド。

指示:

gaurav @ ubuntu:〜$ pkill -f "ping youtube.com" gaurav @ ubuntu:〜$ 

結果:

gaurav @ ubuntu:〜$ ping youtube.com PING youtube.com(142.250.67.206)56(84)バイトのデータ。 bom12s08-in-f14.1e100.net(142.250.67.206)から64バイト:icmp_seq = 1 ttl = 117 time = 30.9 ms bom12s08-in-f14.1e100.net(142.250.67.206)から64バイト:icmp_seq = 2 ttl = 117時間= 121ミリ秒bom12s08-in-f14.1e100.net(142.250.67.206)から64バイト:icmp_seq = 206 ttl = 117時間= 86.5ミリ秒bom12s08-in-f14.1e100.net(142.250.67.206)から64バイト):icmp_seq = 207 ttl = 117 time = 105ms終了gaurav @ ubuntu:〜$ 

ここでは、「ping youtube.com」プロセスが強制終了され、「ping bbc.com」はまだターミナルで実行されています。

場合によっては、 pkill ping コマンド、それは両方を殺しただろう ping プロセス、これは望ましくありません。

で使用される信号 pkill 指図

pkill 特定のシグナルをそのプロセスに送信することにより、プロセスを強制的に終了させます。 3つの可能な信号があります pkill コマンドは、ユーザーが指定したコマンドに応じてプロセスに送信できます。

以下は、利用可能な信号のリストです。

信号仕様
1(HUP)指定されたプロセスをリロードします
9 (殺す)指定されたプロセスを強制終了します
15 (学期)指定されたプロセスを穏やかに停止または中止します

このチュートリアルでは、 殺す 信号。それをよりよく理解するためにいくつかの例を見てみましょう。

を使用して pgrep 取得するコマンド pid 名前apacheとの照合。

gaurav @ ubuntu:〜$ pgrep apache 1218 10402 10403 gaurav @ ubuntu:〜$
pkill -KIll apache

または、数字でコマンドを使用することもできます(例:1、9、15)

pkill -9 apache

上記の両方のコマンドは、プロセスapacheを強制終了します。で確認する pgrep もう一度コマンドします。

gaurav @ ubuntu:〜$ pgrep apache gaurav @ ubuntu:〜$

として pgrep コマンドは出力を返さず、プロセスApacheが強制終了されたことを証明します。

結論

このチュートリアルでは、 pkill コマンドと、プロセス名を直接使用してプロセスを強制終了するために使用される方法。また、 pgrep 特定のユーザーによって実行されたプロセスのプロセスIDをフェッチするために使用されるコマンド。 The pgrep コマンドを使用すると、プロセスが強制終了されたかどうかをクロスチェックできます。