psの出力で<defunct>はどういう意味ですか?


15

私はps -ef|grep javaコマンドを発行しましたが、これは私が得たエントリの1つです:

subhrcho   875   803  0 Jan23 pts/5    00:02:27 [java] <defunct>

<defunct>ここで何を意味していますか?そのプロセスは、PID = 875のプロセスとはどのような状態ですか?

回答:


16

psマンページから:

マークされたプロセスは<defunct>、親がそれらを適切に破壊しなかったために残るデッドプロセス(いわゆる「ゾンビ」)です。親プロセスが終了すると、これらのプロセスはinit(8)によって破棄されます。


子プロセスを破壊するための親プロセスと子プロセス間の契約は何ですか?私はそれが破壊されていることを親に通知するのは子プロセスの義務だと思いましたか?
オタク

@Geekカーネルは子プロセスを破壊し、親に通知します。子_exitは、信号の呼び出しまたは死亡のみを行います。カーネルがプロセスを破壊すると、残っているのはプロセステーブルのエントリだけで、親(または孤児の場合はプロセス1)が呼び出すと消えますwait
ジル 'SO-悪であるのをやめる'

2
@Gilesマニュアルページで、親が子プロセスを適切に破棄していないとはどういう意味ですか?親はwaitを呼び出しませんでしたか?
オタク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.