Boolean World

linux kill cover image

オペレーティングシステムには、ユーザーまたはOS自体(システムサービス システム上で実行されているこのようなプログラムは、”プロセス”と呼ばれています。 通常、プロセスは、タスクが完了したとき、またはキーボードショートカットを押すか、”閉じる”ボタンをクリックして終了するように依頼したときに、単独で終しかし、プロセスがハングアップしたり、大量のCPUやRAMを消費したりすることがあります。

しかし、時には、CPUやRAMを大量に消費することがあります。 このような状況では、プロセスを手動で「強制終了」する必要があります。 この記事では、Linuxシステム上のプロセスを強制終了するために使用できるさまざまなツールを見ていきます。

殺すためにプロセスを見つける

プロセスを殺すためには、最初にプロセスの詳細を見つける必要があります。 これを行うには、toppspidofpgrepの三つのコマンドを使用します。 状況に応じて、この目的のためにこれらのコマンドのいずれかを使用できます。この記事の後半で説明するように、プロセス名またはプロセスID(PID)でプロセスを強制終了することができます。 PIDは、プロセスを一意に識別する番号です。 プロセスIDによる強制終了は、特定のプロセスのみを強制終了する場合に便利です。 一方、特定のプログラムの実行中のすべてのインスタンスを強制終了する場合は、プロセス名による強制終了が便利です。

topコマンドを使用してプロセスを見つける

最初にtopコマンドを見ていきます。 次のように入力してtopコマンドを起動します。

top

以下に示すように、対話型インターフェイスが表示されます。 このリストを参照して、強制終了するプロセスの名前またはPIDを見つけることができます。

プロセスのリストを示すtopコマンド。このリストを参照するには、アップ/ダウンキーを使用できます。 さらに、topコマンドには、このガイドで読むことができるCPU使用率、ユーザー名、およびプロセス名でプロセスをフィルタリングする方法もあります。/p>左端の列にはプロセスのPIDが含まれ、右側にはプログラム名が含まれています。 例として、上記のスクリーンショットでは、プロセスIDが263で実行されているvnstatdプロセスがあります。

psおよびgrepコマンドを使用してプロセスを検索する

プロセスのリストを取得する別の方法は、次のように実行することです。

ps aux

上記のコマンドでは、フラグaux次の意味を持つ

  • aaaaaaa:すべてのユーザーのプロセスを表示
  • u:プロセスを使用しているユーザーを表示
  • xpsはGUI環境で実行されているプロセスを表示しません。コマンドの出力は、topの出力と似ています。 PIDは左から2番目の列にあり、プロセス名は右端の列にあります。p>

    "ps aux"コマンドの結果。"ps aux" command.を使用する利点は、grepコマンドでこのリストを簡単にフィルタリングできることです。 たとえば、”vnstat”という用語に関連付けられたプロセスを検索するには、次のように使用できます。

    ps aux | grep -i vnstat

    psとgrepを使用してプロセここでは、2つの結果が得られました—プロセス、およびgrepプロセス。 “Vnstat”という用語のすべてのインスタンスを検索していて、”vnstat”を引数としてgrepgrepが得られました。したがって、”vnstat”関連のプロセスが実行されていない場合でも、grepprocess:

    psとgrepでプロセスをフィルタリングします。したがって、結果が得られたにもかかわらず、私たちにとって興味深いプロセスはありません。PIDOFとpgrepでPIDを見つける

    toppsgreppidofを使用してPIDを見つけることができます。p>

    pidofを使用するのは非常に簡単です。 正確な名前が”nginx”のプロセスのPidを取得するには、次のようにします。

    pidof nginx

    正確な名前が”nginx”のプロセスがある場合は、以下に示すようにPidのリス 何もない場合は、出力として何も得られません。pidofコマンド

    フルネームがわからない場合は、pidofpgrepを使用できます。 例として、名前のどこかに”ngin”を含むすべてのプロセスを検索するには、次のように実行します。

    pgrep ngin

    これは、”nginx”という正確な名前のプロセ 私たちのシステムでは、上のスクリーンショットで”nginx”に属していたすべてのPidが表示されていることに注意してください。

    pgrepコマンド。

    pidofpkilltoppsの出力には、プロセスを本当に強制終了できるかどうかを判断するのに役立つ追加情報が含まれています。

    どのプロセスを殺すことができますか?プロセスを見つけたので、それを殺す時が来ました。

    これでプロセスを見つけました。 しかし、その方法を学ぶ前に、あなたが知る必要があるいくつかのことがあります。

    あなたが通常のユーザーであれば、あなた自身のプロセスを殺すことはできますが、他のユーザーに属するプロセスは殺すことはできません。 toppstopps auxでは、最初の列にユーザー名が含まれています。

    しかし、rootユーザーはすべてのプロセスを強制終了することができます。 コマンドの前にsudoを追加してrootとして実行するか、suと入力してルートシェルを取得し、コマンドを実行します。Linuxでは、プロセスが強制終了されると、「終了シグナル」がプロセスに配信されます。 多くの異なるタイプの信号がありますが、私たちは主に”SIGTERM”と”SIGKILL”信号を扱います。 それらの数値はそれぞれ15と9です。 デフォルトでは、すべてのプロセス強制終了コマンドは”SIGTERM”を使用し、プログラムが終了する前にコードを実行できるようにするため、”正常に”終了できま 強制的にプロセスを終了したい場合は、代わりに”SIGKILL”を使用できます。

    Linuxカーネルは、プロセスの状態に関連するいくつかの情報を保持します。 プロセスが終了すると、カーネルは親プロセスが子プロセスがそのタスクを完了できたかどうか、そしてそれ自体で終了したかどうかを知ることがで 親がそうするまで、これらの”ゾンビ”プロセスはプロセスのリストに表示されます。 このようなプロセスは、すべてのプロセスのリストのエントリであり、実際のプロセスが関連付けられていないため、強制終了することはできません。

    プロセスが入出力操作(ディスクからの読み取りや書き込みなど)を実行すると、”無停電スリープ”状態にあると言われます。 プロセスがこの状態にある間は、プロセスを強制終了することはできません。topps出力の8番目の列を見ることで、プロセスが「ゾンビ」(Z)または「無停電スリープ」(D)状態にあるかどプロセスを強制終了するために使用できるさまざまなコマンドがあります—killkillallpkilltopkillallコマンド。

    killallコマンドでプロセスを強制終了

    killallコマンドは、プロセスを強制終了する最も簡単な方法の1つです。 プロセスの正確な名前を知っていて、別のユーザーとして実行されておらず、ZまたはDの状態ではないことがわかっている場合は、このコマンドを直接使たとえば、”firefox”という名前のプロセスを強制終了するには、次のように実行します。

    killall firefox

    SIGKILLでプロセスを強制終了するには、次のように実行します。

    killall firefox

    SIGKILLでプロセスを強制的に強制終了するには、次のように実行します。:また、-9-SIGKILLsudo:

    sudo killall firefox

    :

    sudo killall firefox

    :

    sudo killall firefox

    :

    sudo killall firefox

    :sudo:sudo:sudo:sudo:また、-o-yフラグを使用して、一定期間実行されているプロセスを強制終了することもできます。 したがって、30分以上実行されているプロセスを強制終了したい場合は、次のように使用します。

    killall -o 30m <process-name>

    30分未満実行されているプロセ:

    s seconds
    m minutes
    h hours
    d days
    w weeks
    M months
    y years

    Killing processes with the pkill command

    Sometimes, you only know part of a program’s name. pgreppkillapacheという名前を含むすべてのプロセスを強制終了したい場合は、次のように実行します。

    pkill apache

    SIGTERMの代わりにSIGKILLを使用したい場合は、次のように使用します。

    pkill -9 apache

    再び、

    pkill -9 apache

    再び、

    pkill -9 apache

    再び、

    pkill -9 apache

    再び、

    pkill -9 apache

    再び、

    pkill -9 apache

    -SIGKILLの代わりに-9

    killコマンドを使用したプロセスの強制終了

    killコマンドを使用するのは簡単です。 終了したいプロセスのPIDがわかったら、killコマンドを使用して終了できます。 たとえば、PIDが1234のプロセスを強制終了したい場合は、次のコマンドを使用します。

    kill 1234

    前述のように、デフォルトではSIGTERMを使用します。 SIGKILLを使用するには、-9-SIGKILL前に見たように:

    kill -9 1234

    topコマンドでプロセスを強制終了

    top-SIGKILL

    kill -9 1234

    topコマンドでプロセスを強制終了する

    top

    top

    div>コマンド。 まず、強制終了したいプロセスを検索し、PIDをメモします。 次に、topの実行中にkを押します(これは大文字と小文字が区別されます)。 強制終了するプロセスのPIDを入力するように求められます。

    PIDを入力したら、enterキーを押します。

    PIDを入力した後、enterキーを押します。

    PIDを入力した後、enterキーを押します。

    PIDを入力した後、enterキーを押します。

    PIDを入力した これで、プロセスを強制終了するためにどの信号を使用するかを尋ねます。 SIGTERM(15)を使用する場合は、デフォルトの信号であるため、enterキーを押します。 SIGKILL(9)を使用する場合は、9と入力してenterキーを押します。

    プロセスIDを空白のままにしてenterを直接押すと、リストの最上位のプロセスが終了します。 あなたは、矢印キーを使用してスクロールし、このように殺すためにしたいプロセスを変更することができます。

    結論

    この記事では、Linuxでプロセスを強制終了するさまざまな方法を見ました。 これらのコマンドを学習することは、適切なシステム管理と管理のために不可欠です。 これらのコマンドの詳細を調べたい場合は、それぞれのmanページを見てください。この投稿が好きなら、それを共有してください🙂

コメントを残す

メールアドレスが公開されることはありません。