2012-02-10 14 views
2

私のサーバーマシンでは、いくつかのプロセスが毎日休止状態になります。それは私のCPU使用率に影響します。存在しないプロセスIDと親IDを消去するためのシェルスクリプトを書く必要があります。例えばシェルスクリプトによるLinuxの機能停止プロセスを殺す方法

私は、コマンドを実行すると、:

ps -ef|grep defunct. 

は5月の値を発見しました。その中で、私は "[クロム]無効"プロセスだけを殺す必要があります。

サンプルエントリ: -

bitnami 12217 12111 0 Feb09 pts/3 00:00:00 [chrome] <defunct> 

私はクロームエントリのこのタイプを殺すために必要があります。いずれかの人がエントリを殺すためにいくつかのサンプルを提案することができます

+0

無効な場合、CPUを消費することはできません。あなたがCPU使用率を増やしているのであれば、何か他のことが起こっています。そして、ところで、これはあまり話題にはなりません。それは[su] –

+0

の可能な重複[UNIXシステムでの無効なプロセスの終了](http://stackoverflow.com/questions/356722/killing-a-defunct-process-on-unix-system) – user123444555621

答えて

2

それはすでに死んでいます。親はそれを刈り取る必要があり、それから離れることになります。

4

不完全なプロセスは、親プロセスが遺体を収集するか、親が死ぬまで消えません。親プロセスが終了すると、存在しないプロセスはPID1(通常はPID1、それはジョブで指定されたシステムプロセス)に継承され、PID1は死体を待ってプロセステーブルから削除するように設計されています。だから、厳密には、失われたプロセスは、彼らの親が死体を集めるときにだけ消え去る。元の親が死ぬと、新しい親が死体を収集してしまい、最終的に無くなったプロセスがなくなる。

したがって、親コードを書き込んで、死んだ子を待つか、親プロセスを強制終了してください。

無効なプロセスは、基本的にはプロセステーブルのスロットと、親プロセスが要求できるリソース(タイミング)情報をほとんど使用しないことに注意してください。 去年は、PID 1以外のシステムプロセスが所有していた、1分あたり3つの新しいプロセスがあり、収穫されていないマシンで作業していました。 psのようなものは、無駄なプロセスの数が数十万に上がったときに、長い、長い、長い時間を費やしました。 (解決策はo/s用の正しいフィックスパックをインストールすることでした)。これらは完全に無害ではありませんが、いくつかは大きな問題ではありません。

関連する問題