Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

การยุติกระบวนการซอมบี้ในสภาพแวดล้อม Linux

Summary: กระบวนการซอมบี้คืออะไร จะค้นหาได้อย่างไร และจะฆ่าหรือกําจัดมันได้อย่างไร

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

กระบวนการซอมบี้คืออะไร:
เป็นกระบวนการที่สิ้นสุดลง แต่ไม่ใช่ทั้งหมดที่จะถูกลบออกจากหน่วยความจําทันทีเนื่องจากตัวอธิบายกระบวนการยังคงอยู่ในหน่วยความจํา

พฤติกรรมปกติของกระบวนการควรเป็นอย่างไร:
เมื่อกระบวนการสิ้นสุดลง สถานะของกระบวนการจะกลายเป็น EXIT_ZOMBIE และผู้ปกครองของกระบวนการได้รับแจ้งว่ากระบวนการย่อยได้ตายพร้อมกับ SIGCHLD สัญญาณ

กระบวนการหลักควรจะเรียกใช้ wait() สําหรับการเรียกระบบเพื่ออ่านสถานะการออกของกระบวนการที่ตายแล้วและข้อมูลอื่นๆ หลัง wait() เรียกว่ากระบวนการซอมบี้จะถูกลบออกจากหน่วยความจํา สิ่งนี้เกิดขึ้นอย่างรวดเร็ว ดังนั้นคุณจึงไม่เห็นกระบวนการซอมบี้สะสมในระบบของคุณ แต่ในกรณีที่เราเห็นกระบวนการซอมบี้หลายกระบวนการสะสมนี่เป็นสถานการณ์ที่รหัสโปรแกรมไม่มีประสิทธิภาพ

วิธีค้นหากระบวนการซอมบี้:
การเรียกใช้คําสั่ง top
ผลลัพธ์จากคําสั่ง Top

การเรียกใช้คําสั่ง ps -ef | grep defunct
ผลลัพธ์ของคําสั่งที่เลิกใช้แล้ว

วิธียุติกระบวนการสะสมซอมบี้:
โดยส่วนใหญ่แล้ว กระบวนการซอมบี้จะมี ID กระบวนการ

หลักเดียวกันมีสองวิธีในการลบกระบวนการ:
  • ส่ง SIGCHLD ส่งสัญญาณไปยังกระบวนการหลัก
สัญญาณนี้บอกกระบวนการหลักให้เรียกใช้ wait() ระบบเรียกและล้างลูกซอมบี้:
kill -s SIGCHLD <PPID>
ตัวอย่าง:
kill -s SIGCHLD 2201
  • ฆ่ากระบวนการพ่อแม่ซอมบี้
kill -9 <PPID>
ตัวอย่าง:
kill -9 2201

Affected Products

Dell OpenManage Enterprise, NetWorker Series
Article Properties
Article Number: 000019108
Article Type: How To
Last Modified: 06 Aug 2024
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.