1. ホーム
  2. linux

[解決済み] php] <defunct>のプロセスを削除することはできますか?

2022-02-14 10:22:47

質問事項

あるデータを読み取り、pctnl_forkで新しいプロセスを開始し、データに対して何らかの処理を行うPHPスクリプトを作りました。子プロセスが終了すると、それらはプロセスとして残ります。ps auxは、以下のようなプロセスのリストを表示します。

demo       32229  0.0  0.0      0     0 pts/0    Z    12:23   0:00 [php] <defunct>
demo       32251  0.0  0.0      0     0 pts/0    Z    11:50   0:00 [php] <defunct>
demo       32284  0.0  0.0      0     0 pts/0    Z    11:50   0:00 [php] <defunct>
demo       32298  0.0  0.0      0     0 pts/0    Z    12:56   0:00 [php] <defunct>
demo       32303  0.0  0.0      0     0 pts/0    Z    11:50   0:00 [php] <defunct>
demo       32316  0.0  0.0      0     0 pts/0    Z    12:23   0:00 [php] <defunct>

親プロセスがまだ新しいプロセスを作成して何らかの作業をしているので、このプロセスを安全に終了させることができますか?私はおそらく標準エラーにパイプするコマンドを開始する必要があることを知っている(このトピックによると 異常なCrondの挙動。消滅したbashプロセスを作り続ける 今更ですが。 親プロセスはバックグラウンドで動作しています。

解決方法は?

その後 調査中 親プロセスを終了させないと、これらの子プロセスを消すことができないようです。

リンク先で最も適切な引用は、「消滅したプロセス(ゾンビ)はすでに死んでいるので、殺すことはできない」というものです。