プロセスを強制終了することが、プロセスを取り除く唯一の方法である場合があります。厳しい名前にもかかわらず、プロセスを「殺す」とは、単に「強制的に終了する」ことを意味します。 LinuxまたはmacOSコマンドラインから実行する方法は次のとおりです。
プロセスとは何ですか?
Webブラウザー、デスクトップ環境に関連付けられたバックグラウンドプロセス、Linuxシステムサービスなどの実行中のプログラムはすべてプロセスです。
プロセスを2つのグループにまとめることができます。
- フォアグラウンドプロセス ユーザーによって開始または起動されたものです。それらはターミナルウィンドウにある場合もあれば、グラフィカルアプリケーションの場合もあります。
- バックグラウンドプロセス 自動的に開始されるすべてのプロセスであり、ユーザーとのやり取りはありません。ユーザーからの入力を期待したり、結果を提示したり、出力したりすることはありません。バックグラウンドプロセスは、サービスやデーモンのようなものです。
前景のプロセスが劇場のスタッフと俳優の前である場合、背景のプロセスは舞台裏の「舞台裏」チームです。
プロセスが誤動作したり誤動作したりすると、CPU時間が長くなりすぎたり、RAMを消費したり、タイトな計算ループに入って応答しなくなったりする可能性があります。グラフィカルアプリケーションは、マウスクリックへの応答を拒否できます。ターミナルアプリケーションがコマンドプロンプトに戻ることはありません。
人道的な答え
プロセスを「強制終了する」とは、単に「プロセスを強制的に終了する」ことを意味します。プロセスが応答を拒否している場合、これが必要になることがあります。
Linuxは
殺します
、
pkill
、および
killall
それを可能にするコマンド。これらのコマンドは、グラフィカルまたはコマンドライン、フォアグラウンドまたはバックグラウンドなど、あらゆるタイプのプロセスで使用できます。
キルコマンド
使用するには
殺します
、終了するプロセスのプロセスID(PID)を知っている必要があります。ザ・
ps
コマンドを使用して、プロセスのPIDを見つけることができます。
持つため
ps
すべてのプロセスを検索するには、
ー絵
(すべてのプロセス)オプション。出力を配管する
もっと少なく
をお勧めします、かなりの量になるでしょう。タイプ
ps
、 空白、
ー絵
、 空白、
|
(パイプ文字)、別のスペースを入力してから入力します
もっと少なく
。 Enterキーを押して、コマンドを実行します。
ps -e |もっと少なく
これにより、以下のスクリーンショットのようなプロセスリストが表示されます。前方に検索できます
もっと少なく
を使用して
/
キーを押すと、を使用して逆方向に検索できます
?
キー。
関心のあるプロセスに戻るには、からの出力をパイプします。
ps
使って
グリップ
プロセスの名前(または名前の一部)を指定します。
ps ーえ | gれp しゅってr
終了したいプロセスのPIDを見つけたら、それを
殺します
パラメータとしてのコマンド。終了するには
シャッター
前のコマンドで識別されたプロセスは、次のコマンドを使用します。
2099を殺す
ザ・
殺します
コマンドはサイレントアサシンです。成功した場合、フィードバックは提供されません。
pkillコマンド
ザ・
pkill
コマンドを使用すると、1つまたは複数のプロセスを名前で強制終了できます。 PIDでプロセスを識別する必要はありません。使用するには
pkill
あなたはその検索語を提供します
pkill
実行中のプロセスのリストと照合するために使用します。マッチングプロセスは終了します。したがって、その検索用語のスペルが正しいことを確認する必要があります。
セーフティネットとして、
pgrep
コマンド
前
あなたは
pkill
コマンド。ザ・
pgrep
コマンドは検索語も受け入れます。検索語に一致する各プロセスのPIDが一覧表示されます。これは安全です
pgrep
プロセスにkillシグナルを発行することはなく、検索語を誤って入力しても、誤って別のプロセスを強制終了することはありません。検索語を渡す前に、検索語が正しく考えられていることを確認できます。
pkill
。両方
pkill
そして
pgrep
検索語も同じように扱います。彼らの扱いはとても似ているので彼らは
同じマニュアルページを共有する
。
名前に「subq」が含まれるプロセスがあるとします。を使用します
ps -u dave | grep
カーテンの後ろを覗くコマンド。 「subq」がそのプロセスとそのプロセスのみに一致することがわかります。これは、プロセスのフルネームを確認できるようにするためです。
ps -u dave | grep subq
ユーザーを想定しましょう
していません
それをしました。彼らが知っているのは、プロセス名に部分文字列「subq」が含まれていることだけです。彼らは使用します
pgrep
検索語に一致するものが1つしかないことを確認します。次に、その検索語を
pkill
。
pgrep subq
pkill subq
使用できます
pkill
一度に複数のプロセスを強制終了します。ここでユーザーは実行します
pgrep
Chromeが起動したプロセスの数を確認します。彼らは使用します
pkill
それらすべてを殺すために。その後、彼らはチェックします
pgrep
それらがすべて削除されたこと。
pgrepクローム
pkill chrome
pgrepクローム
同じ名前の複数のプロセスが実行されているが、それらすべてを強制終了したくない場合は、次を使用できます。
pgrep
とともに
-f
(コマンドライン)どのプロセスがどのプロセスであるかを識別するオプション。簡単な例は2つです
ping
プロセス。あなたはそれらの1つを殺したいが、他は殺したくない。コマンドラインを使用して、それらを区別できます。コマンドラインパラメータを折り返すために引用符を使用していることに注意してください。
pgrep -f "ping 192.168.4.22"
pkill -f "ping 192.168.4.22"
killallコマンド
警告
:SolarisおよびOpenIndianaオペレーティングシステムでは、
killall
コマンドは
あなたに属するすべてのプロセスを殺す
。ルートであるか、発行した場合
sudo killall
コンピュータを再起動します!この記事の調査中に、この動作はOpenIndiana Hipster2018.10の最新バージョンで確認されました。
ザ・
killall
コマンド
同様の方法で動作します
に
pkill
コマンドですが、特定の違いがあります。コマンドに検索語を渡す代わりに、正確なプロセス名を指定する必要があります。
プロセス名に部分的に一致させることはできません。次のように、プロセス名全体を指定する必要があります。
キルオールシャット
キラルシャッター
ザ・
-Y
(より若い)オプションを使用すると、実行されているプロセスを強制終了できます
もっと少なく
指定された期間より。期間は数字で示され、その後に次の単位のいずれかが続きます。
- s(秒)
- m(分)
- h(時間)
- d(日)
- w(週)
- M(月、メモ、大文字の「M」)
- y(年)
と呼ばれるプロセスを殺すために
穴
ローンチされたばかりで、古いインスタンスを残します
穴
実行中は、次のパラメータを使用できます
killall
、2分以内に反応した場合:
私または私を少なくする
ザ・
ーお
(より古い)オプションを使用すると、指定した期間より長く実行されているプロセスを強制終了できます。このコマンドはすべてを殺します
ssh
1日以上実行されている接続:
killall -o 1d sshd
幸せになりすぎないでください
これらのコマンドを使用すると、誤ったプロセスを正確かつ安全に正しく識別して終了できます。
常に注意してください。まず、殺そうとしているプロセスが本当に必要なプロセスであることを確認します。次に、再確認します。注意して、対象のプロセスが終了したいプロセスであることを確認してください。満足したら、プロセスを終了します。