Linuxでプロセスを終了する場合に使用できるkillコマンドについてはすでに説明しました。ただし、同じ目的で使用できる別のコマンドラインユーティリティがあります: killall 。このチュートリアルでは、わかりやすい例を使用して、このコマンドの基本について説明します。
ただし、その前に、このチュートリアルに含まれるすべての例がUbuntu18.04LTSでテストされていることを言及する価値があります。
Linuxkillallコマンド
killallコマンドを使用すると、プロセスを名前で強制終了できます。ツールの構文は次のとおりです。
killall[OPTIONS]の名前
そして、manページでツールを説明する方法は次のとおりです。
killallは、指定されたコマンドのいずれかを実行しているすべてのプロセスにシグナルを送信します。シグナル名が指定されていない場合、SIGTERMが送信されます。シグナルは、名前(例:-HUPまたは-SIGHUP)、数値(例:-1)、またはオプション-sのいずれかで指定できます。
コマンド名が正規表現でない場合(オプション-r)スラッシュ(/)が含まれている場合、その特定のファイルを実行しているプロセスは、名前に関係なく、強制終了の対象として選択されます。
killallは、リストされているコマンドごとに少なくとも1つのプロセスが強制終了された場合、ゼロリターンコードを返します。 、またはコマンドがリストされておらず、少なくとも1つのプロセスが-uおよび-Z検索基準に一致しました。それ以外の場合、killallはゼロ以外を返します。
killallプロセスは、それ自体を強制終了することはありません(ただし、他のkillallプロセスを強制終了する可能性があります)。
次のQ&Aスタイルの例は、killallコマンドがどのように機能するかについてのより良いアイデアを提供するはずです。
Q1。 killallコマンドの使用方法は?
ツールの基本的な使用法は非常に簡単です-あなたがしなければならないのは、killallへの引数としてプロセスの名前を渡すことだけです。たとえば、 gthumbを殺すには 私のシステムで実行されていたプロセスでは、次のようにkillallを使用しました:
killall gthumb
プロセスの正確な名前がわからない場合は、 psを使用できます。 この情報を取得するコマンド。
Q2。 killallでは大文字と小文字が区別されますか?
はい、そうです。ユーザーが正しいケースでプロセス名を書き込めなかった場合、「プロセスが見つかりません」というエラーがスローされます。次に例を示します。
ただし、必要に応じて、 -I を使用して、killallに大文字と小文字を区別させないようにすることができます。 コマンドラインオプション。
Q3。プロセスを終了する前にkillallに質問させる方法は?
killallコマンドがプロセスを強制終了する前にユーザー権限を要求するようにしたい場合は、 -iを使用できます。 コマンドラインオプション。これにより、killall操作がインタラクティブになります。
例:
Q4。 killallが処理に送信するシグナルを選択するにはどうすればよいですか?
デフォルトでは、killallがプロセスに送信するのはSIGTERMシグナルです。ただし、他の信号を送信することもできます。オプションを使用できます-s 、-シグナル 、および-SIGNAL これらの他の信号を送信します。
ただし、これを機能させるには、killallコマンドが送信できるすべてのシグナルを知る必要があります。これは、 -lを使用して実行できます コマンドラインオプション。
killall -l </ pre>以下は、システムで生成された前述のコマンドのリストです。
Q5。指定されたプロセスが存在しない場合にkillallが文句を言うのを防ぐ方法は?
名前が「killall」に渡されたプロセスが実行されていない(存在しない)場合、ツールはこれを出力でユーザーに伝えます。
ただし、ツールでそのような出力を生成したくない場合は、 -qを使用できます。 コマンドラインオプション。
したがって、-qが使用されたときにkillallコマンドが静かに保たれていることがわかります。
Q6。ユーザーが所有するすべてのプロセスを強制終了するにはどうすればよいですか?
特定のユーザーが所有するすべてのプロセスを強制終了する必要がある場合は、 -uを使用できます。 killallによって提供されるオプション。言うまでもなく、このオプションでは、入力としてユーザーのユーザー名を指定する必要があります。
killall-u[ユーザー名]例:
killall -u himanshuQ7。時間に基づいてプロセスを強制終了する方法は?
現在5時間以上実行されているすべてのプロセスを強制終了したい場合は、 -oを使用してこれを実行できます。 次の方法でオプション:
killall -o 5hもちろん、すべてのプロセスを強制終了したくない場合は、プロセス名を指定できます。同様に、たとえば4時間未満のプロセスを強制終了する場合は、 -yを使用して実行できます。 コマンドラインオプション。
killall -y 4hマニュアルページでこれらのオプションを説明する方法は次のとおりです。
-o、--older-than
指定された時間
より古い(以前に開始された)プロセスのみに一致します。時間はフロート、次に単位として指定されます。
単位はs、m、h、d、w、M、yで、それぞれ秒、分、時間、日、
週、月、年です。
-y 、-younger-than
指定された時間よりも若い(開始された)プロセスのみに一致します
。時間はフロート、次に単位として指定されます。
単位はs、m、h、d、w、M、yで、それぞれ秒、分、時間、日、
週、月、年です。Q8。プロセスが終了した後にのみkillallが返されるようにするにはどうすればよいですか?
killallによってシグナルがプロセスに配信された後、プロセスが終了した後にのみコマンドが返されるようにする場合は、 -wを使用してこれを行うことができます。 コマンドラインオプション。killallを強制的に待機させます。
killall-w[プロセス名]マニュアルページでこのオプションを説明する方法は次のとおりです。
-w、--wait
すべての強制終了されたプロセスが終了するのを待ちます。 killallは、
2番目に、killされたプロセスのいずれかがまだ存在するかどうかをチェックし、
が残っていない場合にのみ、を返します。
信号が無視された場合、効果がなかった場合、またはプロセスが
ゾンビ状態のままである場合、killallは永久に待機する可能性があることに注意してください。結論 Killallは初心者にとっては簡単なことではないかもしれませんが、それほど複雑ではありません。あなたはそれが提供するコマンドラインオプションを練習する必要があります。それらの大部分について説明したので、このチュートリアルは良い出発点になるはずです。これらが完了したら、manページに移動してコマンドの詳細を読むことができます。
Linux