<defunct> หมายถึงอะไรในเอาท์พุทของ ps?


15

ฉันได้ออกps -ef|grep javaคำสั่งและนี่เป็นหนึ่งในรายการที่ฉันได้รับ:

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

อะไรคือสิ่งที่<defunct>อ้างว่าที่นี่? กระบวนการนั้นเป็นกระบวนการที่มี PID = 875 หรือไม่

คำตอบ:


16

จากmanpage ps :

กระบวนการที่ทำเครื่องหมาย<defunct>เป็นกระบวนการที่ตายแล้ว (ที่เรียกว่า "ซอมบี้") ที่ยังคงอยู่เพราะผู้ปกครองไม่ได้ทำลายอย่างถูกต้อง กระบวนการเหล่านี้จะถูกทำลายโดย init (8) หากกระบวนการหลักออกจากกระบวนการ


สัญญาระหว่างกระบวนการหลักกับกระบวนการย่อยทำลายกระบวนการลูกคืออะไร? ฉันคิดว่ามันเป็นหน้าที่ของกระบวนการของเด็กที่จะต้องแจ้งผู้ปกครองว่ามันกำลังถูกทำลาย?
Geek

@Geek เคอร์เนลทำลายกระบวนการลูกและแจ้งผู้ปกครอง เด็กเท่านั้นโทร_exitหรือตายของสัญญาณ เมื่อเคอร์เนลทำลายกระบวนการทั้งหมดที่ยังคงเป็นรายการในตารางกระบวนการซึ่งหายไปเมื่อผู้ปกครอง (หรือกระบวนการที่ 1 สำหรับเด็กกำพร้า) waitโทร
Gilles 'หยุดความชั่วร้าย'

2
@Giles หมายความว่าอย่างไรเมื่อเพจ man พูดว่า parent ไม่ได้ทำลายกระบวนการลูกอย่างถูกต้อง? ผู้ปกครองไม่ได้รอสาย?
Geek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.