目次:
アプリケーションを起動した状況に直面したことがありますか?アプリケーションを使用しているときに突然応答しなくなり、予期せずクラッシュしますか? アプリケーションを再び起動しようとしますが、元のアプリケーションプロセスが完全に完全にシャットダウンすることはないため、何も起こりません。
まあ、それはある時点で私たち全員に起こりましたよね? 解決策は、アプリケーションプロセスを終了または強制終了することです。 しかし、どのように?
幸いなことに、Linuxには誤ったプロセスを殺すことができるユーティリティがいくつかあります。
、
kill
、
killall
、および
pkill
コマンドを使用してLinuxでプロセスを終了する方法を示します。
これらのツールの主な違いは、
kill
はプロセスID番号(PID)に基づいてプロセス
kill
終了するのに対し、
killall
コマンドと
pkill
コマンドは、名前やその他の属性に基づいて実行中のプロセスを終了することです。
通常のユーザーは自分のプロセスを強制終了できますが、他のユーザーに属するプロセスは強制終了できませんが、rootユーザーはすべてのプロセスを強制終了できます。
システムキルシグナル
kill
、
killall
、および
pkill
は、指定されたプロセスまたはプロセスグループに特定のシグナルを送信します。 信号が指定されていない場合、各ツールは
15
(
TERM
)を送信します。
最も一般的に使用される信号は次のとおりです。
-
1
(-HUP):プロセスをリロードします。9
(-KILL):プロセスを強制終了します。15
(-TERM):プロセスを正常に停止します。
信号は、3つの異なる方法で指定できます。
- 「SIG」プレフィックス(例、-HUP)なしの「SIG」プレフィックス(例、-SIGHUP)を使用して、数値(例、-1)を使用します。
-l
オプションを使用して、使用可能なすべてのシグナルをリストします。
kill -l # or killall -l
以下に概説する手順は、すべてのLinuxディストリビューションで機能します。
kill
コマンドを使用したプロセスの終了
kill
コマンドでプロセスを終了するには、最初にプロセスPIDを見つける必要があります。 これを行うには、
top
、
ps
、
pidof
、
pgrep
などのさまざまなコマンドを使用します。
Firefoxブラウザーが応答しなくなり、Firefoxプロセスを強制終了する必要があるとします。 プロセスIDを見つけるには、
pidof
コマンドを使用します。
pidof firefox
このコマンドは、すべてのFirefoxプロセスを印刷します。
2551 2514 1963 1856 1771
FirefoxがPIDを処理してすべてを終了するとわかったら、
TERM
シグナルを送信します。
kill -9 2551 2514 1963 1856 1771
killall
コマンドを使用したプロセスの
killall
killall
コマンドは、指定された名前に一致するすべてのプログラムを終了します。
前と同じシナリオを使用して、次のように入力してFirefoxプロセスを強制終了できます。
killall -9 firefox
killall
は、特定のユーザーが所有するプロセスへのシグナルの送信、プロセス名の正規表現との一致、作成時間など、いくつかのオプションを受け入れます。 端末で
killall
(引数なし)と入力すると、すべてのオプションのリストを取得できます。
たとえば、ユーザー「sara」として実行されているすべてのプロセスを終了するには、次のコマンドを実行します。
pkill
コマンドを使用したプロセスの終了
pkill
は、コマンドラインで指定されたパターンに一致するプロセスを終了します。
pkill -9 firefox
プロセスの名前は完全に一致する必要はありません。
pkill
を使用すると、特定のユーザーが所有するプロセスにシグナルを送信することもできます。 ユーザー「sara」が所有するfirefoxプロセスのみを強制終了するには、次のように入力します。
結論
kill
、
killall
、および
pkill
コマンドを使用して応答しないプログラムを終了するのは簡単な作業です。 必要なのは、プロセス名またはPIDのみです。