วิธีฆ่ากระบวนการซอมบี้บนเครื่อง mac


11

จะฆ่ากระบวนการซอมบี้หรือค้นหาว่าเป็นกระบวนการหลักใน Mac โดยใช้ Terminal ได้อย่างไร



3
@soandos ไม่ใช่เรื่องซ้ำเพราะหัวข้อนั้นไม่เกี่ยวกับซอมบี้ ไม่มีkillสัญญาณใดที่ใช้งานได้กับซอมบี้ IIRC ฉันเคยเกิดสิ่งนี้มาก่อน
Daniel Beck

โดยทั่วไปเราสามารถฆ่าซอมบี้ได้หากกระบวนการหลักนั้นเป็นที่รู้จัก แต่สิ่งนี้ต้องการการฆ่าซอมบี้ด้วยเช่นกันซึ่งไม่ใช่ทางเลือกที่น่าพอใจเสมอไป ดังนั้นฉันสงสัยว่ามีวิธีแก้ไขปัญหานี้อีกหรือไม่
eFrane

คำตอบ:


14

Hack Saw พูดว่า:

น่าเศร้าที่ดูเหมือนว่าการฆ่าซอมบี้นั้นเกี่ยวกับการฆ่าพ่อแม่และถ้าพ่อแม่เป็น / sbin / launchd คุณสามารถฆ่ามันได้ก็ต่อเมื่อรีบูตเท่านั้น

เป็นความคิดที่แย่มากที่จะฆ่าlaunchdแต่คุณสามารถบอก HUP ได้

ลอง sudo kill -s HUP 1

ที่จะทำให้launchdเริ่มต้นใหม่โดยไม่ต้องเริ่มต้นใหม่ สิ่งนี้ได้ผลสำหรับฉันในอดีต (wrt. การลบรายการซอมบี้)


3

น่าเศร้าที่ดูเหมือนว่าการฆ่าซอมบี้นั้นเกี่ยวกับการฆ่าพ่อแม่และถ้าพ่อแม่เป็น / sbin / launchd คุณสามารถฆ่ามันได้ก็ต่อเมื่อรีบูตเท่านั้น

ฉันได้รับซอมบี้จากการใช้ Xcode และหยุดการจำลองและมันก็ส่งมอบซอมบี้ให้กับส่วนตัวของฉัน / sbin / launchd ซึ่งไม่ได้หายไปเมื่อฉันออกจากระบบ

ps -xo pid, ppid, stat, คำสั่งจะแสดงโปรเซสของคุณพร้อม ID พาเรนต์ในคอลัมน์ที่สอง


1

กระบวนการซอมบี้ตายไปแล้วและไม่สามารถฆ่าได้ ควรลบออกจากตารางกระบวนการโดยอัตโนมัติเมื่อกระบวนการหลักตาย

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

มีจำนวนสูงสุดของกระบวนการ (คุณสามารถตรวจสอบได้sysctl kern.maxproc) และกระบวนการซอมบี้จะลดจำนวนลง (ตามที่นับ)

หากคุณถึงขีด จำกัด นี้คุณจะไม่สามารถสร้างกระบวนการใหม่และคุณจะถูกบังคับให้รีบูต


"ควรถูกลบ" แต่ไม่สามารถทำได้ตลอดเวลา Xcode แย่มากเกี่ยวกับการออกจากกระบวนการซอมบี้และพวกมันจะไม่ทำความสะอาดแม้ว่า Xcode จะตาย / ถูกเลิก / ถูกฆ่า
JRG-Developer

@ JRG-Developer ฉันเห็นด้วย แต่ก็ไม่ใช่ปัญหา พวกเขาไม่กินทรัพยากรใด ๆ
Matteo

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

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

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