“ กระบวนการซอมบี้มี 1 กระบวนการ”


33

ข้อความนี้จะปรากฏขึ้นเมื่อฉันเข้าสู่ระบบของฉัน ...

There is 1 zombie process.
  • มันบอกอะไรฉัน
  • นี่คือสิ่งที่ฉันควรกังวลหรือไม่
  • ถ้าใช่ฉันควรทำอย่างไรและอย่างไร?

19
คุณมีปืนลูกซองสองกระบอกในบริเวณใกล้เคียงหรือไม่?
EEAA

คำตอบ:


27

ไม่มีอะไรต้องกังวลเกี่ยวกับ:

ซอมบี้

บนระบบปฏิบัติการ Unix กระบวนการ zombie หรือกระบวนการ defunct เป็นกระบวนการที่เสร็จสิ้นการดำเนินการ แต่ยังคงมีรายการในตารางกระบวนการเพื่อให้กระบวนการที่เริ่มต้นเพื่ออ่านสถานะการออก ในคำอุปมาที่มีสีสันของคำว่ากระบวนการของเด็กเสียชีวิต แต่ยังไม่ได้รับการเก็บเกี่ยว

เมื่อกระบวนการสิ้นสุดหน่วยความจำและทรัพยากรทั้งหมดที่เกี่ยวข้องจะถูกจัดสรรคืนดังนั้นจึงสามารถใช้กระบวนการอื่นได้ อย่างไรก็ตามรายการของกระบวนการในตารางกระบวนการยังคงอยู่ ผู้ปกครองจะส่งสัญญาณ SIGCHLD เพื่อระบุว่าเด็กเสียชีวิต ตัวจัดการสำหรับสัญญาณนี้โดยทั่วไปจะดำเนินการเรียกใช้ระบบรอซึ่งอ่านสถานะทางออกและลบซอมบี้ ID กระบวนการและรายการของซอมบี้ในตารางกระบวนการสามารถนำกลับมาใช้ใหม่ได้ อย่างไรก็ตามหากผู้ปกครองไม่สนใจ SIGCHLD ซอมบี้จะถูกทิ้งไว้ในตารางกระบวนการ ในบางสถานการณ์สิ่งนี้อาจเป็นที่ต้องการตัวอย่างเช่นถ้าพาเรนต์สร้างกระบวนการลูกใหม่จะทำให้แน่ใจได้ว่ามันจะไม่ได้รับการจัดสรร ID กระบวนการเดียวกัน

ที่มา: http://wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process


ขอบคุณ Marc คำอธิบายที่ดี; ตอนนี้ฉันจะหามันทำงานออกมาว่าจะเก็บมันไว้หรือไม่ถ้านั่นก็เอามันออก (และข้อความ)
John Mee

พวกมันจะออกไปเองถ้าเป็นเรื่องที่น่ารำคาญจริงๆคุณสามารถรีบูทหรือค้นหาโพรเซสแม่ PID และฆ่ามัน แต่ขึ้นอยู่กับสิ่งที่จะทิ้งซอมบี้ไว้ข้างหลังนั่นอาจเป็นปัญหาในการฆ่ากระบวนการนั้น
Marc-Andre R.

2
อย่าลืมยอมรับคำตอบของฉันหากนี่คือคำตอบที่แท้จริงสำหรับคำถามของคุณ;) ขอบคุณ!
Marc-Andre R.

10
ขออภัยคุณตอบเฉพาะส่วนแรกของคำถามของเขา มันยังไม่ชัดเจนว่าใครควรกังวลเกี่ยวกับมันและจะทำอย่างไรกับมัน

0

ตามที่อธิบายไว้ในคำตอบที่ยอมรับคุณมีกระบวนการที่ดำเนินการเสร็จสมบูรณ์ แต่ยังอยู่ในตารางกระบวนการ: https://serverfault.com/a/390216/48449

สิ่งนี้ไม่ควรทำให้เกิดอันตรายหากเป็นเพียงกระบวนการเดียว แต่ก็ยังไม่ควรเกิดขึ้น หากมีจำนวนมากเกินไปและคุณไม่รีบูตหรือรีสตาร์ทกระบวนการหลักที่ทำให้เกิดปัญหานั้นคุณสามารถเข้าถึงกระบวนการที่ได้รับอนุญาตถึงจำนวนสูงสุดและทำให้เกิดปัญหาร้ายแรง

หากต้องการทราบว่ากังวลมีความเหมาะสมหรือไม่และกระบวนการอื่นเป็นของผีดิบสิ่งนี้ใช้ได้กับฉัน:

ps -elf --forest | grep -C5 '<[d]efunct>'

เพิ่มจำนวนบรรทัดบริบทหากจำเป็นเพื่อค้นหาข้อมูลเกี่ยวกับกระบวนการพาเรนต์ให้แก้ไขกระบวนการนั้นเพื่อให้ "เก็บเกี่ยวใหม่" กระบวนการย่อยที่สิ้นสุด

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