ホームページ  >  記事  >  コンピューターのチュートリアル  >  Linux でゾンビプロセスを適切に強制終了する方法

Linux でゾンビプロセスを適切に強制終了する方法

WBOY
WBOY転載
2024-02-19 10:40:23475ブラウズ

Linux でゾンビプロセスを適切に強制終了する方法

Linux システムでは、ゾンビ プロセスは終了したもののシステムにまだ残っている特別なプロセスです。ゾンビ プロセスは多くのリソースを消費しませんが、多すぎるとシステム リソースの枯渇を引き起こす可能性があります。この記事では、ゾンビ プロセスを正しく削除してシステムの正常な動作を保証する方法を紹介します。

1 Linux ゾンビ プロセス

子プロセスがタスクを完了した後、親プロセスが時間内にステータスを確認しないと、子プロセスはゾンビプロセスになります。子プロセスは親プロセスからの確認を待っており、システムは完了するまでリサイクルしません。そうしないと、ゾンビ プロセスがシステム内でハングし続けます。

システム内にゾンビ プロセスがあるかどうかを確認するには、コマンド top を実行して、実行中のすべてのプロセスとゾンビ プロセスの可能性を表示します。

「top」コマンドの結果

上の図から、Linux のプロセスの PID 番号がわかります。また、右上隅には、システム内にゾンビ プロセスがないこともわかります。

ゾンビプロセスはシステムに有害ですか?

ゾンビ プロセス自体は Linux システムに害を及ぼすことはありませんが、ゾンビ プロセスが多すぎると、軽微な問題が発生する可能性があります。

ゾンビ プロセスは、タスクを完了し、親プロセスの処理を待っているプロセスです。ゾンビプロセスが多すぎると、システムの問題が発生する可能性があります。

ゾンビプロセスが蓄積しすぎると、システムのパフォーマンスが低下する可能性があります。したがって、これらの問題を時間内に確認して解決することが非常に重要です。通常、ゾンビ プロセスをクリーンアップする責任はその親プロセスにあります。親プロセスがゾンビ プロセスを正しく処理しない場合、システム リソースが無駄に消費される可能性があります。したがって、親プロセスの処理方法を迅速に確認および調整することで、ゾンビプロセスによるシステムへの悪影響を効果的に回避できます。

2 ゾンビ プロセスを排除する

ゾンビ プロセスを排除するには、これらのプロセスを識別するのに役立ついくつかのコマンドを学習する必要があります。

最初に確認するコマンドは ps です。 ps コマンドは、Linux で実行されているアクティブなプロセスを表示します。

ただし、ps コマンドを実行しただけでは、あまり有用な情報は表示されません。したがって、必要な情報を取得するには、さらにいくつかのフラグを追加する必要があります。

リーリー

a: すべてのユーザーのプロセスを表示します。 u: プロセスのユーザー/所有者を表示します。 ×:ターミナルに接続されていないプロセスを表示します。

###写真###

Linux のプロセス

上記の結果に示されているように、システムには 2 つのゾンビ プロセスが存在します。 (STAT は Z として表示されます)

私たちの目的はゾンビ プロセスを見つけることなので、実行中のプロセスをすべて表示するのではなく、ステータス Z のプロセス (つまり、ゾンビ プロセス) を除外する必要があります。これは grep コマンドを使用して実現できます。

リーリー

これにより、他のプロセスを除くシステム内のすべてのゾンビ プロセスがフィルタリングされます。

注: システムにゾンビ プロセスがなく、この記事の内容を引き続き学習したい場合は、次のコマンドを実行してゾンビ プロセスを作成できます。 リーリー

ps aux | grep ‘Z’ コマンドを実行すると、grep コマンド自体を含む、文字 ‘Z’ を含むすべてのプロセスが表示されます。これは、grep コマンドもプロセスであり、そのタスクは「Z」を含むプロセスを見つけることであるため、コマンド自体も検索されるためです。したがって、この問題を回避するには、別のパイプ | grep -v grep を追加して、grep コマンド自体によって生成されたプロセスを除外し、実際のゾンビ プロセスのみを表示する必要があります。

ゾンビ プロセスを削除するには、いくつかの複雑な操作が必要です。ゾンビ プロセスを直接終了することはできませんが、最初にその親プロセスを終了する必要があり、その後ゾンビ プロセスを終了することができます。これは、ゾンビ プロセスはその親プロセスによって作成され、親プロセスがリソースを解放するまでシステムによってゾンビ プロセスをリサイクルできないためです。

まず、親プロセスを見つける必要があります。これを行うには、次の簡単なコマンドを使用できます:

リーリー

(ゾンビプロセスの PID を実際の PID 番号に置き換えます)

これにより、ゾンビ プロセスの親プロセス PID が表示され、その PID を使用して親プロセスが強制終了されます。

Linux でプロセスを強制終了するのは簡単です。これを行うには、kill コマンドを使用します:

リーリー

これにより、ゾンビであるプロセスの結果が表示されます。 PID 番号を取得し、ps -o ppid= -p [zombie process pid] コマンドを使用してゾンビ プロセスの親プロセス PID を見つけ、それを強制終了します。

###写真###

親プロセスの PID を検索します

この例には、PID 109、117、および 119 を持つ 3 つのゾンビ プロセスがあります。ここでは、ゾンビ プロセス 109 の親プロセスを見つけます。

リーリー

結果は非常に単純で、この例では PID 番号のみが表示されます: 108

プロセスを強制終了するには、kill コマンドを使用するだけです:

リーリー

この時点で、ゾンビプロセス 109 の親プロセスは強制終了されています。

注: 親プロセスを強制終了すると、システムまたは他のアプリケーションに副作用が生じる可能性があるため、注意して実行する必要があります。通常、親プロセスの強制終了は最後の手段として行うべきであり、他の解決策を試すまでは親プロセスの強制終了を検討しないことをお勧めします。

この例では、テスト目的で自分で作成したプロセスを強制終了したので問題ありませんが、実際に親プロセスを強制終了する場合は、何をしているのかを理解する必要があります。まず、親プロセスを見つけて、そのプロセスが何を行うのかを確認し、それを強制終了することで何も壊さないようにします。最後に、上記のコマンドを使用してそれを強制終了できます。

この記事を読んで、特にゾンビ プロセスが密集し始めた場合に、いくつかの問題を引き起こす可能性はあるものの、ゾンビ プロセスはそれほどひどいものではないことを読者が理解できることを願っています。読者がいくつかの武器/コマンドを習得していることを願っています。 ps aux | grep "Z" を使用してゾンビ プロセスを見つけ、システムを破壊せずにゾンビ プロセスとその親プロセスを強制終了する方法を学びました。

以上がLinux でゾンビプロセスを適切に強制終了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はmryunwei.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。