Comment tuer une tâche qui "manque d'instance"?


19

Spotify s'est d'abord tué, mais "quelque chose" persistait, ce qui était détectable en tant que tâche avec le PID 8664 et à en juger par le fait que l'utilisation de la RAM changeait de temps en temps - il "a fait quelque chose".

Maintenant, tout d'abord, ce processus m'a empêché d'écouter de la musique parce que Spotify a refusé de redémarrer en raison de cette instance qui traînait.

J'ai donc essayé de me débarrasser de ce processus. Mais ni le gestionnaire de tâches ni la commande taskkill (en tant qu'administrateur bien sûr) n'y sont parvenus.

taskkill m'a au moins donné une "raison" que je traduirai ici.

>taskkill /pid 8664 /f
>taskkill /im spotify.exe /f

les deux ont donné:

ERROR: The process "spotify.exe" with PID 8664 could not be terminated.
Reason: There is currently no instance executed by this task.

Je voudrais savoir ce que cela signifie et s'il existe une autre option pour mettre fin à un tel processus.

(Windows 7 Pro 64 bits)


Cela signifie que Spotify n'est pas en cours d'exécution ou que vous avez un mauvais identifiant de processus. Il n'est pas possible de "masquer" un processus sous Windows. Comment avez-vous déterminé que l'ID de processus en question était connecté à Spotify.
Ramhound

il n'y avait rien de "caché" et le PID était correct
Raffael

1
@Ramhound, sur "Il n'est pas possible de" masquer "un processus sous Windows". Cela semble possible, si nous regardons par exemple cette question security.stackexchange.com/questions/84385/… ou cette question security.stackexchange.com/questions/24848/…
user100487

@ user100487 - Il n'y a absolument rien que vous puissiez faire à un processus pour le cacher, qui à ma connaissance, m'empêcherait de le trouver. Chaque méthode décrite dans ces réponses liées a une solution de contournement, j'ai peut-être des problèmes dans certains cas, mais je vous garantis que je pourrais trouver une solution. Si je peux le faire, n'importe qui peut le faire. Veuillez éviter de me cingler sur des questions aussi anciennes, ennuyeuses, car votre commentaire n'est pas constructif après tout ce temps. "
Ramhound

1
duh oui certainement "n'importe quel processus peut être trouvé". Cependant, ils peuvent être masqués si vous n'utilisez que les outils mentionnés par OP (Windows Task Manager ou Task Kill). C'est tout.
user100487

Réponses:


12

Le processus est presque certainement déjà mort, c'est-à-dire qu'il n'exécute plus de code. Cependant, la comptabilité à ce sujet ne disparaît pas jusqu'à ce que chaque poignée et chacun de ses threads soient fermés. Vous pouvez avoir un autre programme qui maintient une telle poignée ouverte (les programmes antivirus sont probablement un coupable), ou il a peut-être fait une demande avant sa mort à un pilote en mode noyau qui est maintenant bloqué (j'avais une fois un lecteur de CD qui a provoqué cela un lot). Pour en savoir plus: "Pourquoi certains processus restent-ils dans le Gestionnaire des tâches après avoir été tués?" et "Pourquoi tous ces processus persistent-ils près de la mort, et qu'est-ce qui les maintient en vie?"

Spotify refuse de se relancer car il voit une copie de lui-même déjà en cours d'exécution, mais il cherche apparemment juste un autre processus appelé spotify. (Une application à instance unique est son propre déni de service, selon les termes de Raymond Chen.) La façon la plus simple de résoudre ce problème serait de redémarrer l'ordinateur, car cela effacera toutes les poignées et la comptabilité.

Mais si vous avez vraiment envie de le réparer vous-même TM , téléchargez Process Explorer , un utilitaire gratuit incroyablement utile de Sysinternals. (Je n'ai aucune affiliation.) Exécutez-le, aucune installation requise et acceptez le CLUF. Sous Fichier, choisissez Afficher les détails de tous les processus ; cela entraîne le redémarrage de Process Explorer en tant qu'administrateur. Ensuite, sous Rechercher, choisissez Rechercher un handle ou une DLL . Tapez le nom du processus zombie (enfin, cadavre) et appuyez sur Rechercher.

recherche de poignées

Les colonnes Processus et PID vous indiquent quel processus possède le descripteur. La colonne Type indique de quel type de chose il s'agit; nous sommes intéressés par ceux de type Process ou Thread . La colonne Nom vous indique à quoi sert le descripteur. (De nombreux processus possèdent eux-mêmes des descripteurs; ils disparaîtront si l'application propriétaire se termine sans problème en mode noyau.)

Danger : la fermeture d'un handle dont une application a vraiment besoin est un excellent moyen de le bloquer. Si possible, quittez l'application propriétaire du descripteur. Mais si vous ne pouvez pas, ou si vous avez juste envie de frapper des choses avec des marteaux ...

Cliquez sur une entrée dans cette fenêtre de recherche pour ouvrir le volet des poignées. Cliquez avec le bouton droit sur l'entrée nouvellement mise en surbrillance dans ce volet et choisissez Fermer la poignée pour la supprimer de son existence.

Une fois que toutes les poignées sont fermées, le processus disparaît.


Je n'arrivais pas à faire fonctionner ProcessExplorer se bloque très facilement et je n'avais aucun processus avec une poignée que je pouvais fermer
Matthew Lock

2
J'ai fermé tout géré à tous les threads mais le problème a persisté.
Tomáš Zato - Reinstate Monica
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.