403 Stimmen

Wirklich das Beenden eines Prozesses in Windows

Gelegentlich verhält sich ein Programm auf einem Windows-Rechner verrückt und hängt einfach. Also rufe ich den Task-Manager auf und drücke den "Prozess beenden" Button dafür. Allerdings funktioniert das nicht immer; wenn ich es oft genug versuche, dann wird es normalerweise irgendwann sterben, aber ich würde es wirklich bevorzugen, es sofort zu beenden. Auf Linux könnte ich einfach kill -9 verwenden, um sicherzustellen, dass ein Prozess stirbt.

Dies könnte auch für das Schreiben von Batch-Skripten verwendet werden und das Schreiben von Batch-Skripten ist Programmieren.

Gibt es ein Programm oder Befehl, der mit Windows geliefert wird, der immer einen Prozess beendet? Eine kostenlose Drittanbieter-App wäre in Ordnung, obwohl ich es bevorzugen würde, dies auf Maschinen zu tun, an denen ich zum ersten Mal sitze.

22 Stimmen

Ungewollte Prozesse sind ein häufig genug auftretendes Problem in der Programmierung, dass ich nicht zustimmen kann; dies ist keine Frage, die nichts mit dem Thema zu tun hat.

24 Stimmen

Ich befasse mich als Entwickler täglich mit Prozessmanagement. Das ist absolut mein Thema!

17 Stimmen

Ich rate dringend davon ab, diese Frage zu löschen. +195 und es ist ein wirklich früher Google-Treffer für die betroffene Frage.

333voto

pilif Punkte 12278

"End Process" im Processes-Tab ruft TerminateProcess auf, was der ultimativste Weg ist, den Windows kennt, um einen Prozess zu beenden.

Wenn der Prozess nicht verschwindet, ist er wahrscheinlich auf einige Kernel-Ressourcen (wahrscheinlich ein fehlerhafter Treiber) gesperrt und es gibt nichts (außer einem Neustart), was Sie tun könnten, um den Prozess zu beenden.

Schauen Sie sich diesen Blog-Eintrag von damals an: http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Unix-basierte Systeme wie Linux haben auch dieses Problem, bei dem Prozesse ein kill -9 überleben könnten, wenn sie sich im sogenannten "Uninterruptible sleep" befinden (angezeigt durch top und ps als Zustand D), wobei die Prozesse so tief schlafen, dass sie eingehende Signale nicht verarbeiten können (was kill macht - Signale senden).

Normalerweise sollte der Uninterruptible sleep nicht lange dauern, aber wie unter Windows können defekte Treiber oder defekte Benutzerprogramme (vfork ohne exec) dazu führen, dass sie für immer im Zustand D schlafen.

31 Stimmen

While ich hasse, dass dies die richtige Antwort ist, bin ich mir sicher, dass sie korrekter ist als taskkill unten.... blöde fehlerhafte Treiber!

6 Stimmen

Etwas weniger nervig als ein Neustart ist es, sich ab- und wieder anzumelden. Man verliert immer noch Arbeit, aber vielleicht nicht ganz so viel Zeit.

2 Stimmen

Offenbar ist dies nicht der "beste Weg", um einen Prozess zu beenden. Es gibt einige Prozesse in Windows, bei denen sie nach der Zerstörung mit dem Task-Manager einfach sofort wieder auftauchen, als ob nichts passiert wäre... :/

264voto

JosephStyons Punkte 55410
taskkill /im myprocess.exe /f

Das "/f" steht für "force". Wenn Sie die PID kennen, können Sie diese angeben, wie zum Beispiel:

taskkill /pid 1234 /f

Viele andere Optionen sind möglich, geben Sie einfach "taskkill /?" ein, um alle anzuzeigen. Die "/t"-Option beendet einen Prozess und alle zugehörigen untergeordneten Prozesse; das könnte für Sie nützlich sein.

10 Stimmen

Nur eine Notiz. Dies ist besonders nützlich, wenn Sie Skripte für die Serververwaltung schreiben. kill.exe (aus dem NT Res-Kit) wird dazu führen, dass ein Programm beendet wird, aber wenn ein Crash-Handler installiert ist (besonders windbg), kann es zu Problemen führen, da das Betriebssystem den beendeten Prozess als abgestürzt betrachten und versuchen wird, ihn zu debuggen. Taskkill wird nicht zu diesem Problem führen.

0 Stimmen

Ich vermute, dass der Taskmanager intern taskkill aufruft? Sind sie eigentlich dasselbe?

6 Stimmen

@lzprgmr - taskkill und "End Task" rufen wahrscheinlich beide die gleiche zugrunde liegende Windows-Funktion "TerminateProcess" auf msdn.microsoft.com/en-us/library/windows/desktop/…

41voto

user541686 Punkte 196656

Process Hacker bietet zahlreiche Möglichkeiten, einen Prozess zu beenden.

(Klicken Sie mit der rechten Maustaste auf den Prozess und gehen Sie dann zu Sonstiges->Terminator.)

5 Stimmen

Kann nicht viel zur Bestätigung finden, da die Suche danach nur Millionen von KOSTENLOSEN DOWNLOAD!!!-Links liefert. Doch es tut, was es verspricht, Virenrisko und alles.

1 Stimmen

Dieses Programm hat für uns gut funktioniert. Wir haben zwei Programme beendet, die mit den anderen Tools in diesem Thread nicht beendet werden konnten.

1 Stimmen

@Mehrdad Könnten Sie erklären, wie Sie zu diesem Bildschirm gelangt sind?

29voto

Dhruv Chandhok Punkte 760

JosepStyons hat recht. Öffnen Sie cmd.exe und führen Sie aus

taskkill /im processname.exe /f

Wenn ein Fehler angezeigt wird,

ERROR: Der Prozess "process.exe" mit PID 1234 konnte nicht beendet werden. Grund: Zugriff verweigert.

Versuchen Sie es dann, cmd.exe als Administrator auszuführen.

13 Stimmen

Wenn Sie als Administrator ausgeführt werden, ändert sich der Fehler. Es lautet jetzt: FEHLER: Der Prozess mit der PID 17888 (Unterprozess der PID 17880) konnte nicht beendet werden. Grund: Es gibt keine Instanz der Aufgabe. und es bezieht sich auf die übergeordnete PID 17880. Da es den Elternprozess nicht finden kann, wird das verwaiste Kind nicht beendet. :(

1 Stimmen

"Du musst auch den Kindprozess beenden, falls einer erstellt wurde, um deinen Prozess erfolgreich zu beenden" versuche dies stackoverflow.com/questions/12528963/…

0 Stimmen

In meinem Fall war der Zombie-Prozess, den ich gebeten habe zu beenden, das einzige Kind und es gab keinen Elternteil, obwohl der Zombie immer noch dachte, dass es einen Elternteil hatte. In meinem Fall behoben, indem ich den Pfad zum Windows 8.1-Einstellungsfortgeschrittenen Reparatursystem verwendet habe, aber abgebrochen habe, um tatsächlich keine Festplatte zu löschen, sondern nur einen vollständigen erzwungenen Neustart durchzuführen. Das normale Herunterfahren und Neustarten erfolgt wirklich im Ruhezustand (um Zeit beim Startvorgang zu sparen). Nicht einfach, es zu einem vollen Herunterfahren zu bringen.

22voto

Iain Holder Punkte 13981

Holen Sie sich den Process Explorer von Sysinternals (jetzt Microsoft)

Process Explorer - Windows Sysinternals | Microsoft Docs

17 Stimmen

Das liefert mehr Informationen (und einige begrenzte Suchmöglichkeiten nach Sperrgriffen), aber ich hatte damit nicht mehr Erfolg beim Beenden von Aufgaben als mit dem einfachen Task-Manager. Bestimmte Prozesse (wie Antivirensoftware und SugarSync.exe) weigern sich einfach zu sterben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X