これらのLinuxコマンドを使用して、不正なプロセスを強制終了します
「プロセス」の意味を最も簡単な言葉で説明すると、それはシステム上の任意のアプリケーションまたはプログラムの実行中のインスタンスであるということです。ブラウジング、端末で動作する音楽の再生など、複数のアプリケーションを同時に実行している可能性があります。これらのアプリケーションに関連する多くのバックグラウンドプロセスが、ユーザーによって実行されます。
システムで実行されるすべてのアプリケーションまたはプログラムは、単一のアプリケーションに関連付けられた複数のプロセスを作成します。これが問題になる場合があり、これらのプロセスを取り除くことが唯一の選択肢です。
プロセスを「強制終了」することは、フォアグラウンドプロセスであれバックグラウンドプロセスであれ、進行中のプロセスを停止するためにLinuxが提供する便利なオプションの1つです。この記事では、次のようなコマンドを確認します 殺す
, pkill
と killall
システム上のプロセスを強制的に終了します。
なぜプロセスを殺すのですか?
このチュートリアルを進める前に、プロセスを強制終了するという概念を理解することが重要です。殺害は概念を表現するための非常に残忍な方法に思えるかもしれませんが、それが比喩的に意味するのは、プロセスを強制的に中止することです。
では、なぜ進行中のプロセスを中止または終了するのでしょうか。複数のプロセスがバックグラウンドで実行されている場合、それらのすべてまたは一部が誤動作し、システムが誤動作する可能性があります。誤動作しているプロセスによってシステムがしばらくフリーズする可能性があるため、これにより進行中のタスクが遅延します。
場合によっては、誤動作しているすべてのプロセスを終了することが、システムの正常性を回復する唯一のオプションのように思われます。 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
コマンドを使用すると、プロセスが強制終了されたかどうかをクロスチェックできます。