Taskkill / f ne tue pas un processus

140

Lorsque je démarre une instance expérimentale de VS à partir de VS pour le débogage et arrête le débogage (parfois directement à partir du VS parent), un processus zombile devenv.exe reste en cours d'exécution que je ne peux pas tuer. Il tient bon nombre de mes DLL.

Comme je suis connecté à cette machine Win7 64 bits en tant qu'administrateur, je m'attends à pouvoir tuer n'importe quel processus que je souhaite.

I tried (from Administrator command prompt):

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

Aucun ne renvoie une erreur et TASKKILLet a PSKILLrenvoyé des messages de réussite de fin / arrêt du processus. Mais devenv.exe fonctionne toujours, il n'est pas réapparu car le PIDreste constant. Il ne disparaît qu'au redémarrage du système, ce qui n'est pas une excellente solution.

Remarque. LockHunter montre que devenv a un verrou sur lui-même. Et il ne peut pas le déverrouiller.

Process Monitor montre que devenv se trouve dans une sorte de boucle de `` profilage de processus ''

La capture d'écran ci-dessus est la sortie de Process Monitor montrant que devenv se trouve dans une sorte de boucle de `` profilage de processus '' (faites un clic droit dessus et cliquez sur l'image ouverte dans un nouvel onglet pour la voir correctement).

Des idées comment tuer un tel processus sous Windows?

dushyantp
la source
Je ne sais pas pourquoi vous n'obtenez pas d'erreur, mais pour vérifier une chose: avez-vous appelé ces commandes à partir d'une invite de commande élevée? Sinon, les commandes ne seront pas exécutées avec les privilèges d'administrateur, même si votre compte en possède. (Cela ne devrait pas leur permettre de réussir quand ils ont clairement échoué;))
SvenS
1
oui, toutes les commandes ont été exécutées à partir des invites de commande de l'administrateur.
dushyantp
3
Ce type de question est plus approprié sur superuser.com . Oui, ils ont de très bonnes explications là-bas. Celui-ci m'a aidé.
Jarekczek

Réponses:

81

vous devez également tuer le processus enfant s'il y en a un pour tuer avec succès votre processus

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process
aaa
la source
25
Il imprime deux messages de réussite dans mon cas, mais le processus est toujours là. Que se passe-t-il?
CodeManX
3
si ce serait si facile :) non, ça n'aide pas. Je pense que son problème est que le processus impossible à tuer est dans une boucle (socket, entrées / sorties, tuyaux ...) où le processus principal est le processus système et le tuer rendra le système instable. Dans ce cas, je recommanderais d'abord de comprendre dans quelle boucle est le processus. Ensuite, si cette boucle est un échange réseau avec un autre point de terminaison, débranchez simplement le câble réseau ou déconnectez la connexion déjà établie.
75
J'obtiens un There is no running instance of the task Ce processus ne veut vraiment pas mourir!
demongolem
1
aidez-moi encore aujourd'hui, même si je dois aussi tuer "l'enfant de l'enfant": taskkill / f / T / PID 4172 ==> ERREUR: Le processus avec le PID 4172 (processus enfant du PID 4724) n'a pas pu être terminé. ==> taskkill / f / T / PID 4724 ==> Terminé
Hoàng Long
1
Yay pour le /Tcommutateur sous-mentionné !
kayleeFrye_onDeck
34

Les méthodes taskkill et powershell (kill) ne fonctionnaient pas pour moi; il disait toujours «Accès refusé».

J'ai eu plus de chance avec ceci:

wmic process where "name='myprocessname.exe'" delete
Twasbrillig
la source
6
ERREUR: Description =
Requête
51
Windows-10. Aussi: ERROR: Description = Access denied(Utilisation de la console d'administration btw)
FractalSpace
1
Je vous remercie! Cela a fonctionné comme un charme pour mon npm coincé
Eduardo Elias Saléh
1
Incroyable, merci beaucoup. J'ai passé une heure à tuer avant de trouver ça
Derek MC
2
Celui-ci ne fonctionne toujours pas dans mon cas. Avoir un Visual Studio bloqué dans les processus, exécuter la commande et il indique Suppression de l'instance \\ MyMachine \ ROOT \ CIMV2: Win32_Process.Handle = "6420", suppression de l'instance réussie. Mais après 5 minutes, je vois toujours le processus VS devenv.exe dans la liste du gestionnaire de tâches. Je suppose que rien d'autre qu'un redémarrage n'est la seule solution pour moi.
wctiger
30

J'ai juste eu le même problème sur Windows Server 2008 R2 et rien n'a aidé, pas Taskmanager ou taskkill. Mais, Windows PowerShell exécuté en tant qu'administrateur a travaillé avec "kill -id pid"

Gnampf
la source
3
Cela a fonctionné pour moi ... même s'il semblait y avoir environ 30 secondes de retard avant que le processus ne disparaisse, donc au début, il a semblé échouer. Dans le cas que j'ai eu, c'était un processus qui a été créé de manière procédurale par une autre application alors que le système manquait de ressources. Process Explorer, tuer l'arborescence des processus et plusieurs autres choses n'ont pas fonctionné, mais cela a fait l'affaire.
J.Paulding
4
Cela
@rboy. Je sais que c'est vieux, mais juste au cas où quelqu'un d'autre le verrait, faites ce que j'ai fait. Ouvrez PowerShell en tant qu'administrateur, puis exécutez-le. Au début, je ne l'ai pas géré en tant qu'administrateur et cela m'a dit que je ne pouvais pas le faire. Alors je l'ai exécuté en tant qu'administrateur et cela a fonctionné.
Chris Jones
Cela a fonctionné pour moi sur Windows 10 avec un service Windows qui se comporte mal. Avait déjà essayé CMD, dans ce cas PowerShell est le bon outil
ThetaSinner
5
Pas de chance pour moi même après avoir attendu plus de 2-3 minutes. aucune commande ne fonctionne pour moi actuellement
Tarun Gupta
28

Le redémarrage est la seule solution qui a fonctionné pour moi (jusqu'à présent).

Le toujours excellent Mark Russonovich a une bonne explication des processus inéluctables.

Pour résumer, il est fort possible que cela soit dû à des demandes d'E / S non traitées qui n'ont pas été traitées correctement (par un pilote de périphérique auquel votre programme a peut-être accédé)

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

Francis
la source
1
Ce que j'ai fait, c'est de l'éteindre, puis de le redémarrer.
Gellie Ann
10

Je sais qu'il est tard mais taskkill /im devenv.exe /t /fdevrait fonctionner. cela /ttue aussi les processus enfants.

néphi12
la source
12
Cela ne semble pas fonctionner pour moi. Il dit que c'est réussi, mais le processus se présente toujours.
Scott Whitlock
2
Je suis également confronté à un problème similaire, mais avec le service Microsoft FTP, dit terminé mais continue de fonctionner ne peut pas le comprendre
rboy
1
Si au lieu d' /IM devenv.exeutiliser, /PID 17888l'erreur dit essentiellement que 17888 est un enfant de 17880 et que 17880 ne fonctionne pas et ne peut donc pas être tué.
Jesse Chisholm
cela fonctionne mais assurez-vous que vous utilisez cmd depuis le mode administrateur.
karan
Cela n'a pas fonctionné pour moi, en essayant de supprimer le processus Windows Defender qui utilise près de 100% de l'accès au disque ..
David Spector
7

Dans mon cas, après plusieurs jours de lutte contre ce problème (cela arrivait aux processus VirtualBox et µTorrent), j'ai découvert qu'il était causé par un problème de pilote réseau, provoqué par le correctif Windows Update KB4338818 (Windows 7 x64). Après avoir désinstallé ce correctif, tout est revenu à la normale. J'ai juste pensé que cela pourrait être utile pour les autres.

Danita
la source
Comment avez-vous découvert que la mise à jour en était la cause? Je pense que je n'aurais jamais découvert cela. ^^ '
das Keks
1
J'ai réalisé que la seule chose qui avait changé sur ma machine avant que le problème ne devienne apparent était les mises à jour, j'ai donc vérifié quelle était ma dernière mise à jour et lu les notes de publication. Cela semblait suspect et j'ai reculé pour voir si le problème était résolu, ce qui était le cas. Ensuite, j'ai lu sur certains forums Apache, je ne me souviens pas lesquels, que cette mise à jour leur a également causé des problèmes. BTW: La dernière mise à jour Windows à partir de 2018 / août / 10 résout le problème avec KB4338818, afin qu'il puisse être installé à nouveau.
Danita
6

Je pourrais résoudre mon problème en supprimant ce problème en tuant explorer.exe qui à son tour était accro au processus que je voulais tuer. Je suppose que cela peut également se produire si les processus ouvrent des interfaces via un crochet qui peut être verrouillé.

argenté
la source
1
J'ai essayé de tuer et de redémarrer explorer.exe et cela n'a pas fonctionné.
Scott Whitlock
Quand j'ai fait une taskkill /IM "process_name" /T /Fpartie de la réponse était: (child process of PID xxxx)donc j'ai vérifié ce PID et c'était explorer.exe, le redémarrer a résolu mon problème.
Facundo Colombier
5

J'ai vu cela plusieurs fois et ma seule solution était un redémarrage.

Vous pouvez essayer d'utiliser PowerShell: Get-Process devenv | tuer

Mais si les autres méthodes échouent, cela le sera probablement aussi. :-(

Thomas Lee
la source
Malheureusement, oui! Pour moi aussi c'est le cas. avez-vous déjà trouvé une solution?
manocha_ak
Cela n'a pas fonctionné pour moi sur win10: PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip | tuer PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> echo $? Vrai PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip gère NPM (K) PM (K) WS (K) CPU (s) Id SI ProcessName ------- - ---- ----- ----- ------ - - ----------- 0 0 56 20 0,00 41236 1 NSPRip
zhaorufei
4

Native tskill <pid>(ou tskill.exe <pid>) a fonctionné pour moi sur Windows 10 où aucune autre réponse native ne l'a fait.

Dans mon cas, j'avais des processus chrome.exe pour lesquels la `` tâche de fin '' du gestionnaire de tâches fonctionnait, mais taskkill /F /T /PID <pid>ni Powershell ne kill -id <pid>fonctionnait (même avec les deux shells exécutés en tant qu'administrateur).

Ceci est très étrange car il taskkillest censé être une version meilleure api et fait plus de tskill.

Dans mon cas, pour tuer toutes les instances d'une certaine tâche que j'ai utilisée FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i

Zig
la source
1
Cela a fonctionné pour moi, alors qu'aucun des autres ne l'a fait. Thx: D
jk1990
3
Cela n'a pas fonctionné pour moi. GotEnd Process failed for 10576:Access is denied.
twasbrillig
C'est la même chose pour moi. Ce que je ne comprends pas, c'est pourquoi? taskkill est censé être le même que tskill [plutôt mieux, dans la documentation etc.]. Si quelqu'un pouvait répondre?
dvlper le
1
Il semble qu'il n'y ait pas de tskill dans Windows 10
raffaem
Cela n'a pas fonctionné pour moi, en essayant de supprimer le processus Windows Defender qui utilise près de 100% de l'accès au disque ..
David Spector
3

Je vais suggérer quelque chose ici parce que j'ai récemment rencontré le même problème et j'ai essayé toutes les choses possibles dans les réponses mais rien n'a fonctionné. Je recevais des erreurs comme

ERREUR: le processus avec le PID 23908 n'a pas pu être arrêté. Raison: aucune instance de la tâche n'est en cours d'exécution.

en utilisant l'invite de commande. Power Shell n'a pas non plus été utile. il exécuterait simplement les commandes et aucune réponse avec le processus toujours en cours d'exécution.

Jusqu'à ce que je décide de supprimer le fichier «.exe» associé. Puisque le fichier était actif, Windows ne permettait pas la suppression, mais dans cette fenêtre d'avertissement, il m'a donné le nom du processus qui retardait la tâche que je voulais tuer. J'ai pu tuer la tâche d'origine et donc le processus de buggy.

Cela vaut vraiment la peine d'essayer si aucune des solutions ne fonctionne.

Astroynamicien
la source
3

J'obtenais les résultats suivants avec 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.

Ce qui a fonctionné pour moi était 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.

Vous pouvez obtenir à pskillpartir du site en direct de sysinternal

Phillip Ngan
la source
2
Cela n'a pas fonctionné pour moi. Got:Unable to kill process 10576: Access is denied.
twasbrillig
1
Vous devrez peut-être le faire à partir d'un shell de commande avec des droits d'administrateur?
BenV136
2

Certains des fichiers Exe dépendent de certains services,

Vous devez donc trouver le service correspondant et vous arrêter en premier.

girish
la source
4
des conseils sur la façon de résoudre ce problème? Sur taskmanager, il ne montre aucun service correspondant à devenv.exe. En ce moment, j'essaie de recréer le problème, une fois terminé, j'utiliserai l'explorateur de processus pour explorer les services qui pourraient le contenir.
dushyantp
2

Le même problème m'est arrivé dans VirtualBox en ce qui concerne les processus Java.

Dans mon cas, cela était dû à un bogue dans le patch KB4338818 de Windows Update (Windows 7 x64).

Je l'ai résolu en procédant comme suit:

  • Désinstaller le correctif KB4338818 de Windows Update
  • Installez le correctif Windows Update KB4338821
Philippe GRANET
la source
2

Exécuter en tant qu'administrateur fonctionne pour moi:

1. rechercher cmddans Windows

2. faites un clic droit sur cmdsélectionnez comme "Exécuter en tant qu'administrateur"

3.netstat -ano | findstr :8080

4.taskkill/pid (your number) /F

Mon résultat

Qing Yuan
la source
Si vous obtenez une erreur telle que: «nestat» n'est pas reconnu comme une commande interne ou externe, un programme utilisable ou un fichier de commandes. vous devrez peut-être exécuter la commande en tant que C: \ Windows \ system32 \ netstat.exe au lieu de simplement nestat
sk8asd123
2

Pour moi, la façon dont cela a fonctionné est que je dois tuer le processus parent. Identifiez le processus parent et tuez-le

taskkill /IM "parent_process_name.exe" /T /F
Shahazan
la source
1

J'ai le problème avec les processus débogués avec gdb dans Code :: Blocks. Dès qu'il se bloque en entrant accidentellement dans des instructions hors de portée de vos sources (en tant que bibliothèques sans sources ou fonctions système), vous ne pouvez pas quitter le débogage ni à partir de Code :: Blocks ni à partir du Gestionnaire de tâches.

Je pense que c'est une erreur dans l'implémentation de gdb dans Code :: Blocks, mais pourrait aussi être dans gdb;)

Ma solution:

taskkill /F /IM process.exe /T

Cela montre le PID du processus parent. Maintenant, tuez le parent:

taskkill /PID yyyy

Les deux sont partis.

Terminé.

kolp
la source
1
Il est possible que le PID parent n'existe pas.
user1133275
Veuillez spécifier ce que sont gdb et Code :: Blocks;)
bleuté
3
Attention: si le processus parent est en train de services.exetuer le parent, cela peut provoquer un BSOD
MM
1

si taskkill /F /T /PID <pid>cela ne fonctionne pas. Essayez d'ouvrir votre terminal par Run as Administrator.

Recherchez cmddans le menu de vos fenêtres, cliquez avec le bouton droit de la souris Run as Administrator, puis exécutez à nouveau la commande. Cela a fonctionné pour moi.

Kevin Li
la source
1

Si vous téléchargez la suite sysinternals gratuite, elle dispose d'une application pskill.exe qui fonctionne bien pour ces types de tâches: pskill.exe "nom_processus" Il fonctionne sur ces processus même sans utiliser son option -t.

BenV136
la source
1

J'ai fait ce qui suit, sur un PowerShell surélevé:

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

Sortie de commande:

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

Paramètres de sortie:

instance of __PARAMETERS
{ReturnValue = 0; };

J'ai obtenu des informations de syntaxe sur: https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb

Lakoroll
la source
Cela a effectivement fonctionné, devrait être une réponse acceptée. Merci
John Newman
0

NirCmd de NirSoft a fait le travail pour moi:

nircmd killprocess "process name.exe"

La page de manuel de killprocess est ici .

Saxtus
la source
0

J'ai rencontré le même problème lorsque j'ai démarré une application de nœud sur le port 3000 et elle ne s'est pas fermée correctement et le processus a continué à fonctionner même après le redémarrage.

Aucune des commandes taskkill ou powershell exécutées en mode Administrateur n'a fonctionné pour moi.

J'ai utilisé MS Process Expoler> Propriétés> Image> Répertoire actuel (qui était censé être le répertoire de mon projet).

Enfin, j'ai dû redémarrer en SafeMode et renommer le dossier du projet et redémarrer. Les processus Node qui consommaient le port 3000 se sont tués.

Aaman
la source
0

J'ai eu exactement le même problème, j'ai trouvé ce correctif sur un autre site: powershell.exe "Get-Process processname | Stop-Process" cela a fonctionné pour moi et j'étais dans le même bateau où je devais redémarrer, le / T ne fonctionnait pas .

Jérémie
la source
0

Comme Francis l'a mentionné, certains processus ne peuvent pas être interrompus en raison de

"demandes d'E / S non traitées"

D'après mon expérience, j'avais affaire à un pilote graphique bogué qui ferait planter mon jeu et ne pourrait pas le fermer.En dernier recours, j'ai désactivé le pilote graphique et le processus a finalement disparu.

Si votre application attend une ressource du pilote comme le wifi ou un graphique, essayez de les désactiver dans le gestionnaire de périphériques , vous devez creuser un peu plus pour voir où ils se sont accrochés.

Ce n'est bien sûr pas recommandé mais parfois vous n'avez plus rien à perdre.

Masoud R
la source
0

J'ai eu le même problème et comme beaucoup d'autres ici l'ont dit, aucune des commandes Kill normales ne fonctionnait. Mon fichier problématique était un exécutable exécuté à partir d'un partage réseau par un utilisateur sur un serveur Bureau à distance. Avec plusieurs utilisateurs partagés, il n'est pas facile de redémarrer pendant une journée de travail. Même lorsque l'utilisateur s'est déconnecté, l'exe était toujours répertorié dans le Gestionnaire des tâches. J'ai envoyé au serveur où le dossier a été partagé et de Gestion de l'ordinateur -> Sessions a trouvé l'utilisateur avec la session toujours ouverte à partir de ce serveur RDP même s'il était déconnecté. Clic droit -> Fermer la session et le verrou de fichier a été libéré.

Ça me bat pourquoi je ne pouvais pas mettre fin aux taks. Le message d'erreur que je recevais à l'origine lorsque j'essayais de supprimer le fichier était "L'action ne peut pas être terminée car le fichier est ouvert dans le système"

J'espère que ceci aide quelqu'un d'autre.

David Pollard
la source
0

Dans mon cas, aucune des solutions ici n'a fonctionné. J'ai finalement trouvé que le programme en question était gelé en essayant d'interroger les interfaces audio USB. J'ai donc débranché un DAC USB que j'avais connecté et, à ma grande surprise, l'application s'est fermée instantanément. La réponse de Francis mentionne que cela pourrait être le résultat de "demandes d'E / S non traitées qui n'ont pas été traitées correctement (par un pilote de périphérique auquel votre programme a peut-être accédé)", ce qui pourrait expliquer pourquoi cela a résolu le problème.

Je suppose que cela dépend vraiment de ce que le programme faisait quand il a gelé, mais si aucune des autres solutions ne fonctionne, essayez de déconnecter tous les périphériques USB pour voir si l'un d'entre eux pourrait en être la cause.

MacklinB
la source
-3

Exécutez CMD car l'administrateur résoudra le problème

Ibtissam Ibtissama
la source
Veuillez donner plus de détails sur la marche à suivre après avoir exécuté CMD en tant qu'administrateur.
Santiago quitte le SO
-8
  1. ouvrir le gestionnaire de tâches
  2. sélectionnez l'onglet services
  3. sélectionnez le processus (devenv.exe) que vous souhaitez supprimer et cliquez sur le bouton services
  4. directement sur le processus, sélectionnez les propriétés et désactivez-le ...
Zoom
la source