Comment puis-je tuer un processus impossible à tuer?

13

J'ai fermé une candidature, mais le processus est resté dans la liste. J'essaie de m'arrêter du gestionnaire de tâches, mais rien ne se passe. Aucun message d'erreur, le processus reste simplement dans la liste. J'essaie de le déboguer, mais le débogueur dit:

Impossible de joindre le processus de plantage. L'opération demandée n'est pas prise en charge.

Cela arrive parfois avec VS2008 et certains autres programmes.

Comment y mettre fin?

skevar7
la source
C'est l'une des raisons pour lesquelles je suis passé à Linux. Bien que j'aie rencontré ce problème sous Win XP, il semble qu'il n'a pas changé depuis lors.
petersohn
4
Selon samba.2283325.n4.nabble.com/… il y a exactement la même situation sous Linux - les processus en attente sur le noyau ne peuvent pas être tués. C'est l'une des raisons pour lesquelles je suis passé à Windows.
ta.speot.is
L'article de Mark Russinovich «Unkillable Processes» dit que vous pouvez utiliser un outil de débogage du noyau local pour découvrir pourquoi un processus est impossible à tuer. L'article vous donne des instructions sur la marche à suivre. Vous aurez besoin des outils de débogage gratuits pour Windows .
inoubliableidSupportsMonica

Réponses:

12

Malheureusement, le seul véritable recours est de redémarrer.

J'ai également eu ce problème et je n'ai trouvé aucun moyen de tuer le processus qui s'est écrasé. J'ai essayé à peu près toutes les applications pskill / similaires que j'ai pu trouver, et elles échouent toutes.

Si je comprends bien, la cause la plus courante de ce problème est lorsque le processus incriminé charge un pilote système, puis lui envoie une demande qu'il ne parvient pas à terminer. Apparemment, le noyau ne peut pas correctement désallouer la mémoire du processus lorsqu'il se ferme car le pilote en panne est dans un état d'attente d'E / S qui nécessite l'accès à l'espace d'adressage du processus.

(Principalement extrait de) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

Faux nom
la source
2
Oui, c'est certainement la cause la plus courante de ce genre de chose. La plupart des processus non destructifs que j'ai vus étaient liés au lecteur de CD (par exemple EAC.EXE) ou au tuner TV / carte vidéo (par exemple ATIMMC.EXE). Dans les deux cas, cela revient à une faute de conducteur, et toute personne qui a appris et fait du travail de conducteur saura comment les choses problématiques peuvent se produire à ce niveau, et quels types d'effets apparemment "étranges" ils peuvent avoir dans le pays utilisateur (les BSOD au moins sont définitif et clair).
Synetech
1
@ Synetech inc. - Tous les problèmes que j'ai rencontrés étaient liés au disque ou à des logiciels qui n'avaient vraiment pas besoin de pilote (je n'ai aucune idée de la raison pour laquelle ils ont décidé de fonctionner dans le noyau). Je ne pense pas que vous puissiez faire des déclarations générales sur le type de logiciel qui a le plus souvent des plantages non tuables.
Fake Name
3

Process Hacker a une commande Divers → Terminator qui va essayer un tas de méthodes différentes pour tuer votre processus:

échec à la plupart des tentatives

descriptions complètes

Lors de mes tests, tout cela n'a été que de verrouiller Process Hacker et de le transformer en un processus impossible à tuer, mais cela fonctionnera peut-être dans certains cas.

endolith
la source
2
Terminator a été supprimé de Process Hacker et déplacé dans un plugin. Il y avait un fil de discussion à ce sujet. Le responsable a affirmé: "Terminator est inutile ... car il n'est pas plus efficace que la fonctionnalité de terminaison normale." Certaines personnes ont répondu et n'étaient pas d'accord.
inoubliableidSupportsMonica
Plus tard, dmex a déplacé Terminator dans un plugin. Le code source est ici . À ce jour, il n'y a pas encore de binaire . Lorsque le binaire sera publié, il sera publié sur la page des versions de dmex .
inoubliableidSupportsMonica
1
Je viens de déposer une demande de fonctionnalité , demandant une version compilée de Terminator. Pour l'instant, je suppose que vous pouvez utiliser n'importe quelle version de Process Hacker antérieure à 2.39. Par exemple, vous pouvez utiliser la version 2.38, disponible ici .
inoubliableidSupportsMonica
Il y a aussi l'option qu'un débogueur a été attaché et la raison de ne pas tuer est cela. Divers détecte cela et ajoute un débogueur de détachement
Ghita
2

Parfois, le processus peut être bloqué sur une ressource ou un thread ou quelque chose, et quitter ou libérer cela, libère le processus et le laisse se terminer. C'est un peu similaire à la façon dont lorsque vous supprimez (dans la corbeille) un fichier dans l'Explorateur qui est en cours d'utilisation, il ne disparaît pas réellement et semble bloqué (sans retourner immédiatement une erreur en cours d'utilisation / verrouillée), mais si vous quitter le programme qui l'a verrouillé dans les cinq secondes, le fichier disparaît soudainement.

J'ai vu cela se produire à l'occasion, en particulier avec des programmes qui ont une boîte de dialogue contextuelle ou quelque chose qui est en quelque sorte caché; trouver un moyen de fermer la boîte de dialogue permet au thread de se terminer, permettant ainsi au processus de se terminer.

Je soupçonne qu'avec l'augmentation, mais encore relativement nouvelle, de la programmation multithread, des choses comme celle-ci deviendront plus courantes, au moins pendant un certain temps.

Synetech
la source
0

Il est probable que les programmes que vous utilisez ont été développés avant Windows Vista / 7 et sont incompatibles avec les modifications apportées.

Votre meilleur pari est de localiser l'exécutable pour les programmes qui ont ce problème, faites un clic droit, allez dans les propriétés, puis sélectionnez la compatibilité, enfin sélectionnez Windows XP comme mode de compatibilité.

Daisetsu
la source
0

lancez CMD en tant qu'administrateur et utilisez taskkill pour le désactiver. Exemple:

taskkill / F yourprogram.exe

OU

taskkill / F / im yourprogram.exe

Si vous êtes bloqué sur la syntaxe CMD taskkill, tapez taskkill /?

Ethan J.
la source
1
Bienvenue sur Super User! Bien que cela puisse aider à résoudre le problème, il n'explique pas pourquoi et / ou comment il résout le problème. Fournir ce contexte supplémentaire améliorerait considérablement sa valeur éducative à long terme. Veuillez modifier votre réponse pour ajouter des explications, y compris ce que font les paramètres et quelles limitations et hypothèses s'appliquent. Merci.
fixer1234
ERREUR: le processus "AutoHotkeyU64_UIA.exe" avec PID 16872 n'a pas pu être terminé. Raison: il n'y a pas d'instance en cours d'exécution de la tâche.
Shayan