Wie kann ich einen nicht zu tötenden Prozess beenden?

13

Ich habe eine Anwendung geschlossen, aber der Vorgang blieb in der Liste. Ich versuche, im Task-Manager vorbeizuschauen, aber es passiert nichts. Keine Fehlermeldungen, Prozess bleibt in der Liste. Ich versuche es zu debuggen, aber der Debugger sagt:

Es kann keine Verbindung zum Absturzprozess hergestellt werden. Der angeforderte Vorgang wird nicht unterstützt.

Dies passiert manchmal mit VS2008 und einigen anderen Programmen.

Wie kann ich es kündigen?

skevar7
quelle
Das ist einer der Gründe, warum ich auf Linux umgestiegen bin. Obwohl dieses Problem unter Windows XP aufgetreten ist, scheint es sich seitdem nicht geändert zu haben.
Petersohn
4
Laut samba.2283325.n4.nabble.com/… gibt es genau die gleiche Situation unter Linux - Prozesse, die auf den Kernel warten, können nicht beendet werden. Dies ist einer der Gründe, warum ich auf Windows umgestiegen bin.
ta.speot.is
Mark Russinovichs Artikel "Unkillable Processes" besagt, dass Sie mit einem lokalen Kernel-Debugging-Tool herausfinden können, warum ein Prozess nicht beendet werden kann. Der Artikel enthält Anweisungen zur Vorgehensweise. Sie benötigen die Freeware Debugging Tools für Windows .
Unvergesslich am

Antworten:

12

Leider besteht der einzige wirkliche Grund darin, einen Neustart durchzuführen.

Ich hatte auch dieses Problem und konnte absolut keine Möglichkeit finden, den abgestürzten Prozess erfolgreich zu beenden. Ich habe fast jede Pskill / ähnliche App ausprobiert, die ich finden konnte, und alle scheitern.

Nach meinem Verständnis liegt die häufigste Ursache für dieses Problem darin, dass der fehlerhafte Prozess einen Systemtreiber lädt und ihm dann eine Anforderung sendet, die nicht ausgeführt werden kann. Offensichtlich kann der Kernel die Zuordnung des Speichers zum Prozess beim Schließen nicht ordnungsgemäß aufheben, da sich der abgestürzte Treiber in einem E / A-Wartezustand befindet, der den Zugriff auf den Prozessadressraum erfordert.

(Meistens abgeschnitten von) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Falscher Name
quelle
2
Ja, das ist sicherlich die häufigste Ursache für solche Dinge. Die meisten der nicht tödlichen Vorgänge, die ich gesehen habe, betrafen entweder das CD-Laufwerk (z. B. EAC.EXE) oder den TV-Tuner / die Grafikkarte (z ATIMMC.EXE. B. ). In beiden Fällen liegt ein Treiberfehler vor, und jeder, der Fahrerarbeit gelernt und geleistet hat, wird wissen, wie problematisch die Dinge auf dieser Ebene werden können und welche Art von scheinbar „seltsamen“ Effekten sie im Benutzerland haben können (zumindest BSODs) endgültig und klar).
Synetech
1
@ Synetech inc. - Alle Probleme, die ich hatte, betrafen die Festplatte oder Software, für die überhaupt kein Treiber erforderlich war (ich habe keine Ahnung, warum sie im Kernel ausgeführt werden mussten). Ich glaube nicht, dass Sie pauschal aussagen können, welche Art von Software am häufigsten nicht tötbare Abstürze aufweist.
Fake Name
2

Manchmal kann der Prozess für eine Ressource oder einen Thread oder etwas blockiert werden. Wenn Sie das beenden oder freigeben, wird der Prozess freigegeben und kann beendet werden. Es ähnelt in gewisser Weise dem Löschen (in den Papierkorb) einer Datei im Explorer, die gerade verwendet wird, und scheint nicht mehr zu funktionieren (ohne sofort einen in Verwendung befindlichen / gesperrten Fehler zurückzugeben), wenn Sie dies jedoch tun Beenden Sie das gesperrte Programm innerhalb von fünf Sekunden. Die Datei verschwindet plötzlich.

Ich habe dies gelegentlich beobachtet, insbesondere bei Programmen mit einem Popup-Dialogfeld oder etwas, das irgendwie verborgen bleibt. Wenn Sie einen Weg finden, den Dialog zu schließen, wird der Thread beendet und der Prozess beendet.

Ich vermute, dass mit der Zunahme der noch relativ neuen Praxis der Multithread-Programmierung solche Dinge zumindest für eine Weile häufiger werden.

Synetech
quelle
2

Process Hacker verfügt über einen Befehl Verschiedenes → Terminator, mit dem Sie verschiedene Methoden ausprobieren können, um Ihren Prozess zu beenden:

Scheitern bei den meisten Versuchen

vollständige Beschreibungen

In meinen Tests hat das alles dazu geführt, dass Process Hacker blockiert und in einen nicht zu tötenden Prozess verwandelt wurde, aber vielleicht funktioniert es in einigen Fällen.

Endolith
quelle
1
Terminator wurde von Process Hacker entfernt und in ein Plugin verschoben. Es gab einen Forenthread darüber. Der Betreuer behauptete: "Terminator ist nutzlos ... weil er nicht effektiver ist als die normale Terminierungsfunktionalität." Einige antworteten und waren anderer Meinung.
Unvergesslich
Später hat dmex Terminator in ein Plugin verschoben. Der Quellcode ist hier . Zum Zeitpunkt des Schreibens gibt es keine binäre noch . Wenn die Binärdatei freigegeben wird, wird sie auf der Seite dmex releases veröffentlicht .
Unvergesslich
Ich habe gerade eine Funktionsanfrage gestellt und eine kompilierte Version von Terminator angefordert. Im Moment können Sie vermutlich jede Version von Process Hacker verwenden, die älter als 2.39 ist. Beispielsweise könnten Sie Version 2.38 verwenden, die hier verfügbar ist .
Unvergessliches
Es gibt auch die Option, dass ein Debugger angehängt wurde, und der Grund, nicht zu töten, ist der. Miscellaneous erkennt das und fügt Detach-Debugger hinzu
Ghita
1

Starten Sie CMD als Administrator und erzwingen Sie es mit taskkill. Beispiel:

taskkill / F yourprogram.exe

ODER

taskkill / F / im yourprogram.exe

Wenn Sie sich nicht an die CMD-Taskkill-Syntax halten, geben Sie taskkill /?

Ethan J.
quelle
Willkommen bei Super User! Dies kann zwar zur Lösung des Problems beitragen, erklärt jedoch nicht, warum und / oder wie das Problem behoben wird. Die Bereitstellung dieses zusätzlichen Kontexts würde den langfristigen Bildungswert erheblich verbessern. Bearbeiten Sie Ihre Antwort, um eine Erklärung hinzuzufügen, einschließlich der Funktionsweise der Parameter und der geltenden Einschränkungen und Annahmen. Vielen Dank.
Fixer1234
0

Es ist wahrscheinlich, dass die von Ihnen verwendeten Programme vor Windows Vista / 7 entwickelt wurden und mit den vorgenommenen Änderungen nicht kompatibel sind.

Am besten suchen Sie die ausführbare Datei für die Programme, bei denen dieses Problem auftritt. Klicken Sie mit der rechten Maustaste, gehen Sie zu Eigenschaften, wählen Sie Kompatibilität aus und wählen Sie schließlich Windows XP als Kompatibilitätsmodus aus.

Daisetsu
quelle