Windows ฆ่ากระบวนการอย่างไร


10

ฉันไม่คุ้นเคยกับการฆ่ากระบวนการใน Windows ในลีนุกซ์, "warm" kill ส่งสัญญาณ (15) ซึ่งกระบวนการสามารถจัดการได้โดย instantiating ตัวจัดการสัญญาณ Cold kill คือสัญญาณ (9) ที่ระบบปฏิบัติการจัดการโดยการฆ่ากระบวนการอย่างรุนแรง

ฉันจะ "ฆ่า" กระบวนการใน Windows ได้อย่างไร มีการจัดการโดยระบบปฏิบัติการและกระบวนการอย่างไร ระบบปฏิบัติการทำงานอะไรบ้าง? มีวิธีข้ามแพลตฟอร์มในการตอบสนองต่อคำขอฆ่า / ปิดหรือไม่?


1
สำหรับผู้อ่าน: สัญญาณ 15 SIGTERM, SIGKILL9
user1686

โปรดยอมรับคำตอบหากคำถามของคุณได้รับคำตอบแล้ว
Oliver

คำตอบ:


11

"End Task" (และtaskkill) ปรากฏขึ้นเพื่อโพสต์WM_CLOSEข้อความไปยังหน้าต่างของโปรแกรม (จะทำเช่นเดียวกันเมื่อคุณคลิกปุ่ม×"ปิด") หากโปรแกรมไม่ออกในบางครั้งผู้ใช้จะได้รับแจ้งให้จบโปรแกรมอย่างรุนแรง

"ฆ่ากระบวนการ" และการใช้งานtaskkill /fTerminateProcess()


1
+1, WM_CLOSE ส่งไปยังแอปแล้ว หลังจากเวลา X ขอให้ผู้ใช้แรงฆ่า, Windows เอากระบวนการจากกำหนดการปิดจับทั้งหมด (ซึ่งสามารถเดินทางถึงกระบวนการหากเคอร์เนลกำลังประมวลผลอย่างใดอย่างหนึ่งของการจัดการเหล่านั้น) แล้ว reclaims พื้นที่หน่วยความจำ (นี้เป็นเวอร์ชั่นสั้นจริงๆของกระบวนการ)
Chris S

วิธีที่สามคือntsd -p <pid> -c qซึ่งใช้ntsdดีบักเกอร์ ฉันไม่แน่ใจว่าจะเกิดอะไรขึ้นเมื่อโปรแกรมถูกฆ่าแบบนั้น ( pokes
@Chris

5
จะเกิดอะไรขึ้นถ้าโปรแกรมไม่มีหน้าต่าง
ถึง

1
@IttayD: จากนั้นไม่มีรายการใน Task Manager ที่จะใช้ "End Task" บน :) ฉันเพิ่งลองtaskkillและมันตอบกลับด้วย: "กระบวนการนี้สามารถยุติได้อย่างรุนแรง (ด้วยตัวเลือก / F)" TerminateProcess()เพื่อใช่เป็นทางเลือกเดียวที่เหลือคือ
1686

1
@IttayD: โปรดทราบว่าใน Windows บริการ (daemons) จะเขียนแตกต่างจากแอปพลิเคชันผู้ใช้ พวกเขาสามารถได้รับการสอบถามสถานะและการร้องขอการควบคุมจากผู้จัดการบริการดังนั้นจึงเป็นไปได้หยุดที่สง่างาม
1686

0

Sysinternals (ตอนนี้เป็นส่วนหนึ่งของ Microsoft) เสนอโปรแกรมอรรถประโยชน์ที่เรียกว่าpskillซึ่งสามารถใช้จากบรรทัดคำสั่งเพื่อฆ่ากระบวนการในระบบภายในหรือบนระบบระยะไกล

วิธีปกติในการฆ่ากระบวนการใน Windows ในสภาพแวดล้อม GUI คือการใช้ตัวจัดการงาน


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