BASHプログラミング
 Computer >> コンピューター >  >> プログラミング >> BASHプログラミング

Linuxでプロセスを強制終了する方法

Linuxでプロセスを強制終了するために利用できるメソッドは多数あります。このチュートリアルでは、壊れたプロセスを見つけて強制終了する方法を説明します。

プロセスは簡単に孤立する可能性があります。意図的かどうかに関係なく、親プロセスがクラッシュし、子プロセスが実行されたままになる可能性があります。親プロセスが完了した子プロセスを取得できず、ゾンビになる場合があります。

これらのプロセスは両方とも行き詰まっており、手動による介入が必要です。 ジョブ制御を入力します。 壊れたプロセスを強制終了する方法を見てみましょう。

いくつかのコマンドを見てみましょう:

  • トップ (そしてなぜ htop おそらくより良いです)
  • ps
  • 殺す

トップ(検索と破棄)

すべてのプロセスにkillメッセージの送信を開始する前に、自分が何を持っているかを知る必要があります。壊れたプロセスが実行されているとは想定しておらず、何を探すべきかを正確に知っています。それが私たちのトップです 為に。 vimを実行してみましょう バックグラウンドでポップします。

Linuxでプロセスを強制終了する方法

vim

これで、通常は操作できないプロセスができました。 トップを実行しましょう 。通常の出力は役に立たないため、フィルターを実行します。

  • Shift+lを押します
  • vimと入力します
  • Enterキーを押します
Linuxでプロセスを強制終了する方法

トップ

出力があります。最初の行に、稼働時間、ユーザー数、平均負荷が表示されます。また、列に重要な情報があることに気付くでしょう。私が見ているのは通常の日常S%CPU 、および TIME + 。プロセスが状態Z(ゾンビ)にある場合、私はそれを殺すことを知っています。プロセスのCPUが100%を超える場合、プロセスはオーバーランし、強制終了する必要がある場合があります。または、プロセスが数日間続いている場合は、プロセスを再開する時期かもしれません。それはおそらく妄想であり、ほとんどの場合必要ではありませんが。

今日は2行目を見て、ゾンビを探し、孤児を探しています。この例では、ゾンビプロセスが実行されていないため、「2つの停止した」プロセスをフィルタリングします。

  • oを押します
  • タイプ: S =T
Linuxでプロセスを強制終了する方法

フィルタリングト​​ップ

これで、 S =Tのプロセスのみにフィルターされました。 (state =stoped)フィルター、それらを殺すことができます。トップにいるときに、 kを押すことができます 、プロセス PIDを入力します 、Enterキーを押します。実行している場合は、終了するまでに時間がかかる場合があります。代わりに、 kを押してください もう一度、PIDを入力します 信号を9に変更します 。

完璧ではありませんが、ステータスウィンドウとして実行されているトップウィンドウがある場合は、すでにそこにあります。停止信号の代わりに強制終了信号を送信することもできます。

htop

はい、認めます。トップと大差ありません。色を除いて。

Linuxでプロセスを強制終了する方法

htop

色が多すぎます。

PS

PS、プロセスステータス。システム上のプロセス情報を表示するための素敵なネイティブユーティリティ。このツールは、 / proc内のファイルから読み取ります 。ほとんどの場合、次のものを使用します:

Linuxでプロセスを強制終了する方法

PS

  • -a 、すべてのユーザーのプロセスを表示する
  • -u 、プロセス所有者を表示する
  • -x 、端末に接続されていないプロセスを表示

ps -auxを実行しています 一人ですべてをネットにできますが、これが役立つことはめったにありません。 grepにパイプして、失われたvimを見つけましょう。

Linuxでプロセスを強制終了する方法

ps-auxコマンド

そして、それがあります!現在のgrepコマンドもそこに表示されます。それが望ましくない場合は、grepを少し変更してください。

Linuxでプロセスを強制終了する方法

grepを使用したps-auxコマンド

そこには。次に、 vimを探します 、ただし、 vimを探しているgrepプロセスは表示しないでください 。それでは、殺す プロセス。 killallから始めましょう 、次にキルを試してください 。

プロセスの強制終了(Killall&Kill)

さて、私たちは必要なものを持っています。プロセス名( vim )およびプロセスID(140464)。 killall 名前を使用し、殺す プロセスIDを使用します。それぞれが同じ信号のセットを送信します: HUP INT キル用語 、および停止 最も一般的です。詳細を知りたい場合は、キルでリストを確認してください -l <​​/ strong> 。

Linuxでプロセスを強制終了する方法

kill-lコマンド

一般的なシグナルを掘り下げてみましょう:

  • HUP 、信号値1。ハングアップ。電話やモデムの回線以降も存続している古い用語。ほとんどのシステムでハングアップすると、デーモンが終了するのではなく再起動します。
  • INT 、信号値2。割り込み。通常、プロセスと対話するときは、CTRL+Cを送信して割り込みをかけることができます。 kill -2を送信すると、同じ割り込み信号が実行されます。
  • 殺す 、シグナル値9。キル。これが私たちが通常探しているものです。これにより、PIDがすぐに強制終了されます。
  • 期間 、信号値15。終了します。これは、プロセスが終了する場合の通常の動作です。プロセスに親切にしたい場合は、これがプロセスを優雅に終了する方法です。デフォルトでは、killはシグナル15を送信します。
  • 停止 、シグナル値17、19、23。これにより、プロセスが一時停止します。大きなディレクトリをコピーしていて、いくつかのフォルダを削除したいとします。 SIGSTOPを送信し、フォルダーを削除して、SIGCONTで再開します。

さて、信号値を追加しました。これらはシグナルの数値であり、キルで使用できます。 SIGHUPと入力する代わりにコマンド。例:

  • killall -9 vim

vimという名前のすべてを殺そうとします。 killallを使用するときは常に、プロセスが後で正常に強制終了されたことを確認することをお勧めします。

Linuxでプロセスを強制終了する方法

killall -9 vim

残っているものがある場合は、 kill -9を使用して手動で強制終了します その後にプロセスIDが続きます。例:

  • キル-9140464

結論

プロセスを強制終了する簡単な説明があります。オーバーランプロセスのトップから始めます。 killallを使用する スタックしたグラフィカルプロセスで。 キルで残りを分離します 。これで問題の大部分が解決されます。

疑わしい場合は、再起動してください。実行する前に、適切な通知手順に従ってください。シェルコマンドの詳細を学び、Linuxのスキルを磨いてください。


  1. Linuxでディレクトリの名前を変更する方法

    このチュートリアルでは、「 mv 」を使用して、Linuxでディレクトリの名前を変更する方法を説明します。 」と「名前の変更 」コマンド。 ディレクトリの名前変更は、ファイルの名前変更と大差ありません。結局のところ、これはLinuxであり、すべてがファイルであるためです。ディレクトリさえ。したがって、ファイルの名前変更で説明したことのほとんどは、ここでも機能します。 mvを使用したディレクトリの名前変更 mv RenameDir/ renameDir ディレクトリの名前を変更するmvコマンド そこにそれがある。ただmv それ、歌のように。あなたがディレクトリに向けられた何かを持っている

  2. Linux で応答しないプログラムを閉じる方法

    Linux は頑丈なオペレーティング システムであり、多くの場合、応答しない、パフォーマンスが遅いなどの問題に直面することはありません。ただし、一部のアプリがフリーズする場合があります。それらが応答するかクラッシュするのを待つか、応答しないアプリを強制終了することができます。 応答しないアプリを強制終了するために使用できる方法はたくさんあります。この投稿では、応答しないアプリケーションに対処するための最良の方法をいくつか挙げました。始めましょう! 注: ここでは Kali Linux を使用しています。 ×ボタンをクリック これはアプリを閉じる最も簡単な方法です。従来の方法では、X また