Taskkill / f beendet keinen Prozess

139

Wenn ich eine experimentelle VS-Instanz von VS zum Debuggen starte und das Debuggen beende (manchmal direkt vom übergeordneten VS), wird weiterhin ein zombiler Prozess devenv.exe ausgeführt, den ich nicht beenden kann. Es hält an vielen meiner DLLs fest.

Da ich als Administrator auf diesem 64-Bit-Win7-Computer angemeldet bin, würde ich erwarten, dass ich jeden gewünschten Prozess beenden kann.

I tried (from Administrator command prompt):

End Task from Task Manager.
TASKKILL /F /IM devenv.exe
PSKILL devenv.exe

Keine Rückkehr eines Fehlers und TASKKILLund PSKILLzurückErfolgsMeldungen des Beendens / Tötung des Prozesses. Aber devenv.exe läuft immer noch, es wird nicht erneut erzeugt, da das PIDkonstant bleibt. Es verschwindet nur beim Neustart des Systems, was keine gute Lösung ist.

Hinweis. LockHunter zeigt, dass devenv ein Schloss für sich hat. Und es kann es nicht entsperren.

Process Monitor zeigt an, dass sich devenv in einer Art 'Process Profiling'-Schleife befindet

Der obige Screenshot ist die Ausgabe von Process Monitor und zeigt, dass sich devenv in einer Art 'Process Profiling'-Schleife befindet (Klicken Sie mit der rechten Maustaste darauf und klicken Sie auf Bild öffnen in neuem Tab, um es richtig anzuzeigen).

Irgendwelche Ideen, wie man einen solchen Prozess unter Windows beendet?

dushyantp
quelle
Keine Ahnung, warum Sie keinen Fehler erhalten, aber um eines zu überprüfen: Haben Sie diese Befehle an einer Eingabeaufforderung mit erhöhten Rechten aufgerufen? Andernfalls werden die Befehle nicht mit Administratorrechten ausgeführt, obwohl Ihr Konto über diese verfügt. (Dies sollte ihnen nicht erlauben, Erfolg zurückzugeben, wenn sie eindeutig gescheitert sind;))
SvenS
1
Ja, alle Befehle wurden über Administrator-Eingabeaufforderungen ausgeführt.
Dushyantp
3
Diese Art von Frage ist auf superuser.com besser geeignet . Ja, sie haben dort ziemlich gute Erklärungen. Dieser hat mir geholfen.
Jarekczek

Antworten:

81

Sie müssen auch den untergeordneten Prozess beenden, wenn einer erzeugt wurde, um Ihren Prozess erfolgreich zu beenden

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process
aaa
quelle
25
In meinem Fall werden zwei Erfolgsmeldungen gedruckt, aber der Prozess ist noch vorhanden. Was zum Teufel?
CodeManX
3
wenn das so einfach wäre :) nein, es hilft nicht. Ich denke, sein Problem ist, dass sich der nicht tötbare Prozess in einer Schleife befindet (Socket, E / A, Pipes ...), in der der Hauptprozess der Systemprozess ist und das Beenden des Systems das System instabil macht. In diesem Fall würde ich empfehlen, zuerst zu verstehen, in welcher Schleife sich der Prozess befindet. Wenn diese Schleife ein Netzwerkaustausch mit einem anderen Endpunkt ist, ziehen Sie einfach das Netzwerkkabel ab oder trennen Sie die bereits hergestellte Verbindung.
75
Ich bekomme ein There is no running instance of the task Dieser Prozess will wirklich nicht sterben!
Demongolem
1
Hilf mir heute noch, obwohl ich auch das "Kind des Kindes" töten muss: taskkill / f / T / PID 4172 ==> FEHLER: Der Prozess mit PID 4172 (Kinderprozess von PID 4724) konnte nicht beendet werden. ==> taskkill / f / T / PID 4724 ==> Fertig
Hoàng Long
1
Yay für den unten erwähnten /TSchalter!
KayleeFrye_onDeck
34

Die Taskkill- und Powershell-Methoden (Kill-Methoden) haben bei mir nicht funktioniert. es stand immer noch "Zugriff verweigert".

Ich hatte besseres Glück damit:

wmic process where "name='myprocessname.exe'" delete
twasbrillig
quelle
6
FEHLER: Beschreibung = Ungültige Abfrage
user1133275
51
Windows-10. Außerdem: ERROR: Description = Access denied(Übrigens mit der Admin-Konsole)
FractalSpace
1
Danke dir! Das funktionierte wie ein Zauber für meine feststeckende npm
Eduardo Elias Saléh
1
Erstaunlich, vielen Dank. Verbrachte eine Stunde mit Töten, bevor ich das fand
Derek MC
2
Dieser funktioniert in meinem Fall immer noch nicht. Lassen Sie ein Visual Studio in Prozessen stecken, führen Sie den Befehl aus und es heißt Instanz löschen \\ MyMachine \ ROOT \ CIMV2: Win32_Process.Handle = "6420", Instanzlöschung erfolgreich. Aber nach 5 Minuten sehe ich immer noch den VS devenv.exe-Prozess in der Task-Manager-Liste. Ich denke nichts als ein Neustart ist die einzige Lösung für mich.
Wctiger
30

Hatte gerade das gleiche Problem unter Windows Server 2008 R2 und nichts half, nicht Taskmanager oder Taskkill. Windows Powershell wurde jedoch ausgeführt, als der Administrator mit "kill -id pid" arbeitete.

Gnampf
quelle
3
Dies funktionierte für mich ... obwohl es ungefähr 30 Sekunden Verzögerung zu geben schien, bevor der Prozess tatsächlich ablief, schien es zunächst zu scheitern. In dem Fall, dass ich es hatte, war es ein Prozess, der prozedural von einer anderen Anwendung erstellt wurde, während das System wenig Ressourcen hatte. Process Explorer, Kill Process Tree und einige andere Dinge funktionierten nicht, aber das war der Trick.
J. Paulding
4
Hat bei mir nicht funktioniert, hat mir einen Fehler gegeben, der den Prozess usw. usw. nicht
beenden konnte
@rboy. Ich weiß, dass es alt ist, aber nur für den Fall, dass jemand anderes sieht, dass dies das tut, was ich getan habe. Öffnen Sie Powershell als Administrator und führen Sie es aus. Zuerst habe ich es nicht als Administrator ausgeführt und es hat mir gesagt, dass ich es nicht tun kann. Also habe ich es als Admin ausgeführt und es hat funktioniert.
Chris Jones
Dies funktionierte für mich unter Windows 10 mit einem fehlerhaften Windows-Dienst. Hatte CMD bereits ausprobiert, in diesem Fall ist PowerShell das richtige Tool
ThetaSinner
5
Kein Glück für mich, auch wenn ich länger als 2-3 Minuten gewartet habe. Keiner der Befehle funktioniert derzeit für mich
Tarun Gupta
28

Neustart ist die einzige Lösung, die (bisher) für mich funktioniert hat.

Der immer ausgezeichnete Mark Russonovich hat eine gute Erklärung für nicht abtötbare Prozesse.

Zusammenfassend ist es durchaus möglich, dass nicht verarbeitete E / A-Anforderungen nicht ordnungsgemäß verarbeitet wurden (von einem Gerätetreiber, auf den Ihr Programm möglicherweise zugegriffen hat).

http://blogs.technet.com/b/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Francis
quelle
1
Ich habe es heruntergefahren und dann neu gestartet.
Gellie Ann
9

Ich weiß, es ist spät, taskkill /im devenv.exe /t /fsollte aber funktionieren. Das /ttötet auch Kinderprozesse.

nephi12
quelle
12
Das scheint bei mir nicht zu funktionieren. Es heißt, es sei erfolgreich, aber der Prozess wird immer noch angezeigt.
Scott Whitlock
2
Ich stehe auch vor einem ähnlichen Problem, aber mit Microsoft FTP-Dienst, sagt beendet, läuft aber weiter, kann es nicht herausfinden
Rboy
1
Wenn anstelle von /IM devenv.exeich verwendet, /PID 17888dann sagte der Fehler im Grunde, dass 17888 ein Kind von 17880 ist und 17880 nicht läuft und daher nicht getötet werden kann.
Jesse Chisholm
Dies funktioniert, aber stellen Sie sicher, dass Sie cmd aus dem Admin-Modus verwenden.
Karan
Hat bei mir nicht funktioniert und versucht, den Windows Defender-Prozess zu löschen, der fast 100% des Festplattenzugriffs verwendet.
David Spector
7

In meinem Fall stellte ich nach mehreren Tagen des Kampfes mit diesem Problem (es geschah mit VirtualBox- und µTorrent-Prozessen) fest, dass es durch ein Netzwerktreiberproblem verursacht wurde, das durch den Windows Update-Patch KB4338818 (Windows 7 x64) hervorgerufen wurde. Nach der Deinstallation dieses Patches wurde alles wieder normal. Ich dachte nur, es könnte für andere nützlich sein.

Danita
quelle
Wie haben Sie festgestellt, dass das Update es verursacht hat? Ich glaube, ich hätte das nie entdeckt. ^^ '
das Keks
1
Ich erkannte, dass sich an meinem Computer nur die Updates geändert haben, bevor das Problem offensichtlich wurde. Daher überprüfte ich, welches mein letztes Update war, und las die Versionshinweise. Es schien verdächtig und ich rollte zurück, um zu sehen, ob das Problem gelöst war, was es war. Dann habe ich in einigen Apache-Foren gelesen, weiß nicht mehr, dass dieses Update auch für sie Probleme verursacht hat. Übrigens: Das letzte Windows Update vom 2018 / Aug / 10 behebt das Problem mit KB4338818, sodass es erneut installiert werden kann.
Danita
6

Ich konnte mein Problem lösen, indem ich explorer.exe tötete, was wiederum süchtig nach dem Prozess war, den ich töten wollte. Ich denke, dies kann auch passieren, wenn Prozesse Schnittstellen über einen Hook öffnen, der möglicherweise gesperrt ist.

Seansilver
quelle
1
Ich habe versucht, explorer.exe zu beenden und neu zu starten, und das hat nicht funktioniert.
Scott Whitlock
Als ich einen taskkill /IM "process_name" /T /FTeil der Antwort machte, war: (child process of PID xxxx)Also habe ich diese PID überprüft und es war explorer.exe, ein Neustart hat mein Problem gelöst.
Facundo Colombier
5

Ich habe das ein paar Mal gesehen und meine einzige Lösung war ein Neustart.

Sie können versuchen, PowerShell: Get-Process devenv | zu verwenden töten

Aber wenn die anderen Methoden fehlgeschlagen sind, wird dies wahrscheinlich auch so sein. :-(

Thomas Lee
quelle
Leider schon! Bei mir ist das auch so. Hast du jemals eine Lösung bekommen?
Manocha_ak
Bei Win10 nicht funktioniert: PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip | töte PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> echo $? True PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> NSPRip-Prozesse verarbeiten NPM (K) PM (K) WS (K) CPU (s) ID SI-Prozessname ------- - ---- ----- ----- ------ - - ----------- 0 0 56 20 0,00 41236 1 NSPRip
zhaorufei
4

Einheimisch tskill <pid>(odertskill.exe <pid> ) arbeitete für mich unter Windows 10, wo keine andere native Antwort dies tat.

In meinem Fall hatte ich einige chrome.exe-Prozesse, für die die 'End Task' des Task-Managers funktionierte, aber weder taskkill /F /T /PID <pid>noch die von Powershellkill -id <pid> funktionierten (selbst wenn beide Shells als Administrator ausgeführt wurden).

Dies ist sehr seltsam, da taskkillangeblich eine bessere API-and-Do-More-Version von ist tskill.

In meinem Fall, um alle Instanzen einer bestimmten Aufgabe zu töten, die ich verwendet habe FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i

Zig
quelle
1
Das hat bei mir funktioniert, als keiner der anderen es tat. Thx: D
jk1990
3
Hat bei mir nicht funktioniert. GotEnd Process failed for 10576:Access is denied.
twasbrillig
Das gleiche passiert für mich. Was ich nicht verstehen kann, ist warum? taskkill soll dasselbe sein wie tskill [eher besser, in der Dokumentation etc.]. Wenn jemand antworten könnte?
dvlper
1
Scheint, es gibt keine Kenntnisse in Windows 10
Raffaem
Hat bei mir nicht funktioniert und versucht, den Windows Defender-Prozess zu löschen, der fast 100% des Festplattenzugriffs verwendet.
David Spector
3

Ich werde hier etwas vorschlagen, weil ich kürzlich mit dem gleichen Problem konfrontiert war und alles Mögliche in den Antworten ausprobiert habe, aber nichts hat funktioniert. Ich bekam Fehler wie

FEHLER: Der Prozess mit PID 23908 konnte nicht beendet werden. Grund: Es gibt keine laufende Instanz der Aufgabe.

Verwenden der Eingabeaufforderung. Power Shell war auch nicht hilfreich. Es würde einfach die Befehle ausführen und keine Antwort geben, während der Prozess noch läuft.

Bis ich mich entschied, die zugehörige '.exe'-Datei zu löschen. Da die Datei aktiv war, erlaubte Windows das Löschen nicht, aber in diesem Warnfenster gab es mir den Namen des Prozesses, der die Aufgabe aufhielt, die ich beenden wollte. Ich konnte die ursprüngliche Aufgabe und damit den Buggy-Prozess beenden.

Es ist definitiv einen Versuch wert, wenn keine der Lösungen funktioniert.

Astroynamiker
quelle
3

Ich habe die folgenden Ergebnisse mit erhalten taskkill

>taskkill /im "MyApp.exe" /t /f
ERROR: The process with PID 32040 (child process of PID 54176) could not be terminated.
Reason: There is no running instance of the task.

>taskkill /pid 54176  /t /f
ERROR: The process "54176" not found.

Was für mich funktionierte, war sysinternal pskill

>pskill.exe -t 32040

PsKill v1.15 - Terminates processes on local or remote systems
Copyright (C) 1999-2012  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 32040 killed.

Sie können pskillvon der Live-Site des Sysinternal erhalten

Phillip Ngan
quelle
2
Hat bei mir nicht funktioniert. Erhalten:Unable to kill process 10576: Access is denied.
twasbrillig
1
Möglicherweise müssen Sie dies über eine Befehlsshell mit Administratorrechten tun?
BenV136
2

Einige der Exe-Dateien Abhängig von einigen Diensten,

Sie müssen also den entsprechenden Service finden und zuerst anhalten.

girish
quelle
4
Irgendwelche Tipps, wie man das herausarbeitet? Auf dem Task-Manager wird kein Dienst angezeigt, der devenv.exe entspricht. Im Moment versuche ich, das Problem neu zu erstellen. Sobald dies erledigt ist, werde ich den Prozess-Explorer verwenden, um nach Diensten zu suchen, die ihn möglicherweise enthalten.
Dushyantp
2

Das gleiche Problem ist mir in VirtualBox in Bezug auf Java-Prozesse passiert.

In meinem Fall lag es an einem Fehler im Windows Update-Patch KB4338818 (Windows 7 x64).

Ich habe es folgendermaßen gelöst:

  • Deinstallieren Sie den Windows Update-Patch KB4338818
  • Installieren Sie den Windows Update-Patch KB4338821
Philippe GRANET
quelle
2

Als Administrator zu arbeiten funktioniert für mich:

1.Suchen Sie cmdin Windows

2. Klicken Sie mit der rechten Maustaste auf cmd"Als Administrator ausführen ".

3.netstat -ano | findstr :8080

4.taskkill/pid (your number) /F

Mein Ergebnis

Qing Yuan
quelle
Wenn Sie eine Fehlermeldung erhalten, z. B.: 'Nestat' wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt. Möglicherweise müssen Sie den Befehl als C: \ Windows \ system32 \ netstat.exe ausführen, anstatt nur nestat
sk8asd123
2

Für mich hat es so funktioniert, dass ich den übergeordneten Prozess beenden muss. Finde den übergeordneten Prozess heraus und töte ihn

taskkill /IM "parent_process_name.exe" /T /F
Shahazan
quelle
1

Ich habe das Problem mit debuggten Prozessen mit gdb in Code :: Blocks. Sobald es hängt, während Sie versehentlich in Anweisungen außerhalb des Bereichs Ihrer Quellen eintreten (als Bibliotheken ohne Quellen oder Systemfunktionen), können Sie das Debuggen weder über Code :: Blocks noch über Task-Manager beenden.

Ich denke, es ist ein Fehler in der Implementierung von gdb in Code :: Blocks, könnte aber auch in gdb sein;)

Meine Lösung:

taskkill /F /IM process.exe /T

Dies zeigt die PID des übergeordneten Prozesses. Töte jetzt die Eltern:

taskkill /PID yyyy

Beide sind weg.

Getan.

kolp
quelle
1
Möglicherweise ist die übergeordnete PID nicht vorhanden.
user1133275
Bitte geben Sie an, was gdb und Code :: Blocks sind;)
bläulich
3
Warnung: Wenn der übergeordnete Prozess das services.exeBeenden des übergeordneten Elements durchführt, kann dies zu BSOD
MM
1

wenn taskkill /F /T /PID <pid>nicht funktioniert. Versuchen Sie, Ihr Terminal durch zu öffnen Run as Administrator.

Suchen Sie cmdin Ihrem Windows-Menü, klicken Sie mit der rechten Maustaste Run as Administratorund führen Sie den Befehl erneut aus. Das hat bei mir funktioniert.

Kevin Li
quelle
1

Wenn Sie die kostenlose sysinternals-Suite herunterladen, verfügt sie über eine pskill.exe-Anwendung, die für diese Arten von Aufgaben gut geeignet ist: pskill.exe "process_name" Sie funktioniert auf diesen Prozessen auch ohne Verwendung der Option -t.

BenV136
quelle
1

Ich habe auf einer erhöhten Powershell Folgendes getan:

PS C:\Windows\system32> wmic.exe /interactive:off process where "name like `'java%'`" call terminate

Befehl Ausgabe:

Executing (\\SRV\ROOT\CIMV2:Win32_Process.Handle="3064")->terminate()
Method execution successful.

Out-Parameter:

instance of __PARAMETERS
{ReturnValue = 0; };

Ich habe einige Syntaxinformationen erhalten unter: https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb

Lakoroll
quelle
Dies hat tatsächlich funktioniert, sollte als Antwort akzeptiert werden. Vielen Dank
John Newman
0

NirCmds NirCmd hat die Arbeit für mich erledigt:

nircmd killprocess "process name.exe"

Die Killprocess-Manpage ist hier .

Saxtus
quelle
0

Ich hatte das gleiche Problem, als ich eine Knoten-App in Port 3000 startete und sie nicht richtig schloss und der Prozess auch nach dem Neustart weiter lief.

Keiner der Taskkill- oder Powershell-Befehle, die im Administratormodus ausgeführt werden, hat bei mir funktioniert.

Ich habe MS Process Expoler> Eigenschaften> Image> Aktuelles Verzeichnis verwendet (das sollte mein Projektverzeichnis sein).

Schließlich musste ich in SafeMode neu starten und den Projektordner umbenennen und neu starten. Die Node-Prozesse, die Port 3000 verbrauchten, haben sich selbst getötet.

Aaman
quelle
0

Ich hatte genau das gleiche Problem und fand dieses Update auf einer anderen Site: Powershell.exe "Get-Process-Prozessname | Stop-Process" funktionierte für mich und ich befand mich im selben Boot, in dem ich neu starten musste, das / T würde nicht funktionieren .

Jeremy
quelle
0

Wie Francis erwähnte, kann ein Prozess wegen nicht abgebrochen werden

"unverarbeitete E / A-Anforderungen"

Nach meiner Erfahrung hatte ich es mit fehlerhaften Grafiktreibern zu tun , die dazu führten, dass mein Spiel abstürzte und nicht geschlossen werden konnte. Als letzten Ausweg deaktivierte ich den Grafiktreiber und der Prozess ging schließlich weg.

Wenn Ihre Anwendung auf eine Ressource von einem Treiber wie WLAN oder Grafik wartet, versuchen Sie, sie im Geräte-Manager zu deaktivieren. Sie müssen ein wenig tief graben, um zu sehen, wo sie hängen.

Dies wird natürlich nicht empfohlen, aber manchmal haben Sie nichts mehr zu verlieren.

Masoud R.
quelle
0

Ich hatte das gleiche Problem und wie viele andere hier gesagt haben, hat keiner der normalen Kill-Befehle funktioniert. Meine Problemdatei war eine ausführbare Datei, die von einem Benutzer auf einem Remotedesktop-Server von einer Netzwerkfreigabe ausgeführt wurde. Bei mehreren gemeinsam genutzten Benutzern ist es nicht einfach, während eines Arbeitstages neu zu starten. Auch wenn sich der Benutzer abgemeldet hat, wurde die Exe noch im Task-Manager aufgeführt. Ich habe an den Server gesendet, auf dem der Ordner freigegeben wurde, und über Computerverwaltung -> Sitzungen festgestellt, dass der Benutzer mit der Sitzung von diesem RDP-Server noch geöffnet ist, obwohl er abgemeldet war. Rechtsklick -> Sitzung schließen und die Dateisperre wurde aufgehoben.

Schlägt mich, warum ich die Einnahmen nicht beenden konnte. Die Fehlermeldung, die ich ursprünglich beim Versuch, die Datei zu löschen, erhalten habe, lautete "Die Aktion kann nicht abgeschlossen werden, da die Datei im System geöffnet ist."

Hoffe das hilft jemand anderem.

David Pollard
quelle
0

In meinem Fall hat keine der Lösungen hier funktioniert. Ich stellte schließlich fest, dass das betreffende Programm beim Versuch, USB-Audio-Interfaces abzufragen, eingefroren war. Also zog ich einen USB-DAC heraus, den ich angeschlossen hatte, und zu meiner Überraschung wurde die Anwendung sofort beendet. In der Antwort von Francis wird erwähnt, dass dies möglicherweise auf "unverarbeitete E / A-Anforderungen zurückzuführen ist, die nicht ordnungsgemäß verarbeitet wurden (von einem Gerätetreiber, auf den Ihr Programm möglicherweise zugegriffen hat)", was möglicherweise erklärt, warum dies das Problem behoben hat.

Ich nehme an, es hängt wirklich davon ab, was das Programm tat, als es einfrierte, aber wenn keine der anderen Lösungen funktioniert, versuchen Sie, alle USB-Geräte zu trennen, um festzustellen, ob eine davon die Ursache sein könnte.

MacklinB
quelle
-3

Führen Sie CMD als Administrator aus, um das Problem zu beheben

Ibtissam Ibtissama
quelle
Bitte geben Sie weitere Details dazu an, was als Nächstes zu tun ist, nachdem Sie CMD als Admin ausgeführt haben.
Santiago verlässt SO
-8
  1. Task-Manager öffnen
  2. Wählen Sie die Registerkarte Dienste
  3. Wählen Sie den Prozess (devenv.exe) aus, den Sie beenden möchten, und klicken Sie auf die Schaltfläche Dienste
  4. Wählen Sie direkt im Prozess Eigenschaften aus und deaktivieren Sie sie ...
Zoomen
quelle