ฉันจะฆ่ากระบวนการที่ไม่มีทักษะได้อย่างไร


13

ฉันปิดแอปพลิเคชัน แต่กระบวนการยังคงอยู่ในรายการ ฉันพยายามหยุดจากตัวจัดการงาน แต่ไม่มีอะไรเกิดขึ้น ไม่มีข้อผิดพลาดกระบวนการเพียงอยู่ในรายการ ฉันพยายามดีบั๊ก แต่ตัวดีบั๊กบอกว่า:

ไม่สามารถแนบกับกระบวนการหยุดทำงาน การดำเนินการที่ร้องขอไม่ได้รับการสนับสนุน

สิ่งนี้เกิดขึ้นกับ VS2008 และบางโปรแกรมอื่น ๆ บางครั้ง

จะยุติได้อย่างไร?


นั่นเป็นหนึ่งในเหตุผลที่ฉันเปลี่ยนมาใช้ Linux แม้ว่าฉันจะประสบปัญหานี้ใน Win XP แต่ดูเหมือนว่ามันจะไม่เปลี่ยนไปตั้งแต่นั้น
petersohn

4
ตามsamba.2283325.n4.nabble.com/ …มีสถานการณ์เดียวกันใน Linux - กระบวนการที่รอเคอร์เนลไม่สามารถฆ่าได้ นี่คือหนึ่งในเหตุผลที่ฉันเปลี่ยนมาใช้ Windows
ta.speot.is

บทความของ Mark Russinovich "Unkillable Processes"กล่าวว่าคุณสามารถใช้เครื่องมือการดีบักเคอร์เนลเพื่อค้นหาสาเหตุที่กระบวนการไม่สามารถฆ่าได้ บทความนี้ให้คำแนะนำคุณเกี่ยวกับสิ่งที่ต้องทำ คุณจะต้องฟรีแวร์แก้จุดบกพร่องเครื่องมือสำหรับ Windows
ลืมไปข้างหน้า

คำตอบ:


12

น่าเสียดายที่การขอความช่วยเหลือที่แท้จริงเพียงอย่างเดียวคือการรีบูต

ฉันมีปัญหานี้ด้วยและฉันก็ไม่สามารถหาวิธีฆ่ากระบวนการที่ล้มเหลวได้สำเร็จ ฉันลองใช้แอพ pskill / คล้ายกันทุกอันที่ฉันเจอและพวกมันก็ล้มเหลว

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

(cribbed ส่วนใหญ่มาจาก) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx


2
ใช่นั่นเป็นสาเหตุที่พบบ่อยที่สุดของสิ่งนี้ กระบวนการที่ไม่มีทักษะที่ฉันได้เห็นส่วนใหญ่เกี่ยวข้องกับไดรฟ์ซีดี (เช่นEAC.EXE) หรือการ์ดรับสัญญาณทีวี / การ์ดวิดีโอ (เช่นATIMMC.EXE) ในทั้งสองกรณีมันเกิดจากความผิดพลาดของคนขับและผู้ที่เรียนรู้และทำงานของคนขับจะรู้ว่าสิ่งที่เป็นปัญหาสามารถมาถึงระดับนั้นได้อย่างไร แตกหักและชัดเจน)
Synetech

1
@ Synetech inc. - ปัญหาทั้งหมดที่ฉันมีเกี่ยวกับดิสก์หรือในซอฟต์แวร์ที่ไม่จำเป็นต้องใช้ไดรเวอร์เลย (ฉันไม่รู้เลยว่าทำไมพวกเขาถึงต้องตัดสินใจทำงานในเคอร์เนล) ฉันไม่คิดว่าคุณสามารถสร้างข้อความใด ๆ เกี่ยวกับซอฟท์แวร์ประเภทใดที่มักจะมีปัญหาล่มไม่สามารถฆ่าได้
ชื่อปลอม

3

Process Hackerมีคำสั่งเบ็ดเตล็ด→ Terminator ที่จะลองใช้วิธีการต่าง ๆ เพื่อฆ่ากระบวนการของคุณ:

ล้มเหลวในความพยายามส่วนใหญ่

คำอธิบายแบบเต็ม

ในการทดสอบของฉันทั้งหมดนี้ได้ล็อค Process Hacker และเปลี่ยนเป็นกระบวนการที่ไม่สามารถฆ่าได้ แต่บางทีมันอาจจะใช้ได้ในบางกรณี


2
Terminator ถูกลบออกจาก Process Hacker และย้ายไปยังปลั๊กอิน มีกระทู้เกี่ยวกับมัน ผู้ดูแลอ้างว่า: "Terminator ไม่มีประโยชน์ ... เพราะไม่มีประสิทธิภาพมากกว่าฟังก์ชั่นการเลิกจ้างทั่วไป" บางคนตอบกลับและไม่เห็นด้วย
ลืมไปข้างหน้า

หลังจากนั้น dmex ย้าย Terminator ไปยังปลั๊กอิน รหัสแหล่งที่มาที่นี่ ขณะที่เขียนนี้ไม่มีไบนารีเลย เมื่อไบนารีถูกปล่อยออกมาก็จะได้รับการเผยแพร่ไปยังหน้า dmex เผยแพร่
unforgettableidSupportsMonica

1
ฉันได้ยื่นคำขอฟีเจอร์เมื่อเร็ว ๆ นี้เพื่อขอ Terminator เวอร์ชันที่คอมไพล์แล้ว สำหรับตอนนี้ฉันคิดว่าคุณสามารถใช้ Process Hacker เวอร์ชันใดก็ได้ที่เก่ากว่า 2.39 ตัวอย่างเช่นคุณสามารถใช้เวอร์ชั่น 2.38 ซึ่งสามารถใช้ได้ที่นี่
unforgettableidSupportsMonica

นอกจากนี้ยังมีตัวเลือกที่มีการแนบดีบักและเหตุผลที่จะไม่ฆ่าก็คือ ตรวจพบเบ็ดเตล็ดนั้นและเพิ่มตัวดีบัก detach
Ghita

2

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

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

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


0

อาจเป็นไปได้ว่าโปรแกรมที่คุณใช้พัฒนาขึ้นมาก่อน Windows Vista / 7 และไม่สามารถทำงานร่วมกับการเปลี่ยนแปลงที่เกิดขึ้นได้

ทางออกที่ดีที่สุดของคุณคือค้นหาโปรแกรมที่มีปัญหานี้คลิกขวาไปที่คุณสมบัติจากนั้นเลือกความเข้ากันได้ในที่สุดเลือก Windows XP เป็นโหมดความเข้ากันได้


0

เรียกใช้ CMD ในฐานะผู้ดูแลระบบและใช้ taskkill เพื่อบังคับใช้ ตัวอย่าง:

taskkill / F yourprogram.exe

หรือ

taskkill / F / im yourprogram.exe

หากคุณติดอยู่กับไวยากรณ์ CMK taskkill ให้พิมพ์ taskkill /?


1
ยินดีต้อนรับสู่ Super User! แม้ว่าสิ่งนี้อาจช่วยในการแก้ปัญหา แต่ก็ไม่ได้อธิบายว่าทำไมและ / หรือวิธีการแก้ไขปัญหา การให้บริบทเพิ่มเติมนี้จะช่วยเพิ่มมูลค่าทางการศึกษาในระยะยาวอย่างมีนัยสำคัญ โปรดแก้ไขคำตอบของคุณเพื่อเพิ่มคำอธิบายรวมถึงสิ่งที่พารามิเตอร์ทำและข้อ จำกัด และสมมติฐานที่ใช้ ขอบคุณ
fixer1234

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