Linuxマシンで作業しているときに、アプリケーションまたはコマンドラインプロセスがスタックする(応答しなくなる)ことがあります。そして、そのような場合、それを終了することが唯一の方法です。 Linuxコマンドラインは、これらのシナリオで使用できるユーティリティを提供します。それはキルと呼ばれます 。
このチュートリアルでは、わかりやすい例を使用して、killの基本について説明します。ただし、その前に、記事のすべての例がUbuntu16.04マシンでテストされていることを言及する価値があります。
Linuxのkillコマンド
killコマンドは通常、プロセスを強制終了するために使用されます。内部的には信号を送信しますが、実行する内容に応じて、このツールを使用して送信できるさまざまな信号があります。コマンドの構文は次のとおりです。
kill [options][...]
そして、ツールのマニュアルページで説明されているのは次のとおりです。
killのデフォルトのシグナルはTERMです。 -lまたは-Lを使用して、使用可能な信号を一覧表示します。特に有用な
信号には、HUP、INT、KILL、STOP、CONT、および0が含まれます。代替信号は、
-9、-SIGKILL、または-KILLの3つの方法で指定できます。負のPID値を使用して、プロセスグループ全体を選択できます。 psコマンド出力のPGID
列を参照してください。 -1のPIDは特別です。これは、kill
プロセス自体とinitを除くすべてのプロセスを示します。
次のQ&Aスタイルの例は、killコマンドがどのように機能するかをよりよく理解するのに役立ちます。
Q1。 killコマンドを使用してプロセスを終了するにはどうすればよいですか?
これは非常に簡単です。必要なのは、強制終了するプロセスのpidを取得し、それをkillコマンドに渡すことだけです。
kill [pid]
たとえば、システムの「gthumb」プロセスを強制終了したいとしました。そのため、最初にpsコマンドを使用してアプリケーションのpidをフェッチし、次にそれをkillコマンドに渡して終了しました。これがすべてを示すスクリーンショットです:
Q2。カスタム信号を送信するにはどうすればよいですか?
はじめにのセクションですでに述べたように、TERMは、killが問題のアプリケーション/プロセスに送信するデフォルトのシグナルです。ただし、必要に応じて、 -s を使用して、killがサポートする他のシグナルを送信できます。 コマンドラインオプション。
kill -s [signal] [pid]
たとえば、プロセスがTERMシグナルに応答しない場合(プロセスが終了する前に最終的なクリーンアップを実行できるようにする)、KILLシグナル(プロセスにクリーンアップを実行させない)に進むことができます。その場合に実行する必要のあるコマンドは次のとおりです。
kill -s KILL [pid]
Q3。 killを使用して送信できるすべてのシグナルは何ですか?
もちろん、頭に浮かぶ次の論理的な質問は、killを使用して送信できるすべてのシグナルを知る方法です。ありがたいことに、コマンドラインオプション -lがあります。 サポートされているすべての信号が一覧表示されます。
kill -l </ pre>以下は、システムで生成された上記のコマンドの出力です。
Q4。信号を送信する他の方法は何ですか?
前の例の1つで、KILLシグナルを送信する場合は、次の方法で送信できます。
kill -s KILL [pid]ただし、他にもいくつかの選択肢があります。
kill -s SIGKILL [pid]kill -s 9 [pid]対応する番号は、前の例ですでに説明した-lオプションを使用して知ることができます。
Q5。実行中のすべてのプロセスを一度に強制終了するにはどうすればよいですか?
ユーザーが可能なすべてのプロセスを強制終了したい場合(これは特権レベルによって異なります)、多数のプロセスIDを指定する代わりに、-1オプションを渡すだけで強制終了できます。
例:
kill -s KILL -1結論 killコマンドは、理解して使用するのが非常に簡単です。それが提供する信号オプションのリストに関してはわずかな学習曲線がありますが、ここで説明したように、そのリストをざっと見るオプションもあります。私たちが話し合ったことを何でも練習すれば、うまくいくはずです。詳細については、ツールのマニュアルページにアクセスしてください。
Linux