Wie kann man eine Aufgabe beenden, der eine Instanz fehlt?

19

Spotify hat sich zuerst selbst getötet, aber "etwas davon" blieb bestehen, was mit PID 8664 als Aufgabe erkennbar war, und nach der Tatsache zu urteilen, dass sich die RAM-Auslastung von Zeit zu Zeit änderte - es "tat etwas".

Zunächst einmal hat mich dieser Prozess davon abgehalten, Musik zu hören, da Spotify sich weigerte, neu zu starten, weil diese Instanz herumhing.

Also habe ich versucht, diesen Prozess loszuwerden. Dies gelang jedoch weder dem Task-Manager noch dem Befehl taskkill (als Administrator natürlich).

taskkill gab mir zumindest einen "Grund", den ich hier übersetzen werde.

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

beide gaben:

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

Ich würde gerne wissen, was das bedeutet und ob es eine andere Möglichkeit gibt, einen solchen Prozess zu beenden.

(Windows 7 Pro 64 Bit)

Raffael
quelle
Dies bedeutet, dass Spotify entweder nicht ausgeführt wird oder Sie die falsche Prozess-ID haben. Es ist nicht möglich, einen Prozess in Windows "auszublenden". Wie haben Sie festgestellt, dass die betreffende Prozess-ID mit Spotify verbunden ist?
Ramhound
es war nichts "versteckt" und die PID war korrekt
Raffael
1
@Ramhound, über "Es ist nicht möglich, einen Prozess in Windows" zu verstecken ". Es scheint möglich, wenn wir uns zum Beispiel diese Frage security.stackexchange.com/questions/84385/… oder diese Frage security.stackexchange.com/questions/24848/…
user100487 20.11.15
@ user100487 - Es gibt absolut nichts, was Sie tun können, um einen Prozess auszublenden, der meines Wissens dazu führen würde, dass ich ihn nicht finde. Jede in diesen verknüpften Antworten beschriebene Methode hat eine Problemumgehung. In einigen Fällen habe ich möglicherweise Probleme, aber ich garantiere Ihnen, dass ich eine Lösung finden könnte. Wenn ich es kann, kann es jeder tun. Bitte vermeiden Sie es, mich bei Fragen
anzupingen, die
1
duh ja sicher "jeder prozess ist zu finden". Sie können jedoch ausgeblendet werden, wenn Sie nur die von OP erwähnten Tools (Windows Task Manager oder Task Kill) verwenden. Das ist alles.
user100487

Antworten:

12

Der Prozess ist mit ziemlicher Sicherheit bereits tot, dh er führt keinen Code mehr aus. Die Buchhaltung darüber verschwindet jedoch erst, wenn alle Handles und Threads geschlossen sind. Möglicherweise hat ein anderes Programm ein solches Handle geöffnet (Antiviren-Programme sind wahrscheinlich schuld), oder es hat vor seinem Tod eine Anfrage an einen Kernel-Modus-Treiber gesendet, der jetzt hängt (ich hatte einmal ein CD-Laufwerk, das dies verursachte) Menge). Lesen Sie weiter: "Warum bleiben einige Prozesse im Task-Manager, nachdem sie beendet wurden?" und "Warum gibt es all diese Prozesse, die dem Tod nahe sind, und was hält sie am Leben?"

Spotify weigert sich, erneut zu starten, da es eine Kopie von sich selbst sieht, die bereits ausgeführt wird, aber anscheinend nur nach einem anderen Prozess mit dem Namen sucht spotify. (Eine Einzelinstanzanwendung ist nach Raymond Chens Worten eine eigene Denial-of-Service-Anwendung.) Der einfachste Weg, dies zu beheben, ist ein Neustart des Computers, da dadurch alle Handles und die Buchhaltung gelöscht werden.

Wenn Sie jedoch wirklich Lust auf Fixing It Yourself TM haben , laden Sie Process Explorer herunter , ein fantastisch nützliches kostenloses Dienstprogramm von Sysinternals. (Ich habe keine Zugehörigkeit.) Führen Sie es aus, ohne dass eine Installation erforderlich ist, und akzeptieren Sie die EULA. Wählen Sie unter Datei die Option Details für alle Prozesse anzeigen . Dadurch wird Process Explorer als Administrator neu gestartet. Wählen Sie dann unter Suchen die Option Handle oder DLL suchen aus . Geben Sie den Namen des Zombie-Prozesses (Brunnen, Leiche) ein und drücken Sie Suchen.

Suche nach Griffen

In den Spalten Process und PID wird angegeben, welchem ​​Prozess das Handle gehört. Die Spalte Typ gibt an, um was für eine Sache es sich handelt. Wir interessieren uns für die vom Typ Prozess oder Thread . In der Spalte Name wird angegeben, wie der Handle behandelt werden soll. (Viele Prozesse besitzen Handles für sich selbst. Diese gehen verloren, wenn die zugehörige Anwendung im Kernel-Modus problemlos beendet wird.)

Gefahr : Das Schließen eines Handles, das eine Anwendung wirklich benötigt, ist eine gute Möglichkeit, sie zum Absturz zu bringen. Beenden Sie nach Möglichkeit die Anwendung, die das Handle besitzt. Aber wenn Sie nicht können, oder Sie haben einfach Lust, mit Hämmern auf Dinge einzuschlagen ...

Klicken Sie in diesem Suchfenster auf einen Eintrag, um das Handles-Fenster zu öffnen. Klicken Sie mit der rechten Maustaste auf den neu markierten Eintrag in diesem Bereich und wählen Sie Handle schließen, um ihn zu schließen.

Sobald alle Griffe geschlossen sind, verschwindet der Prozess.

Ben N
quelle
Ich konnte das nicht zum Laufen bringen Der ProcessExplorer hängt sich sehr leicht auf und ich hatte keinen Prozess mit einem Handle, den ich schließen konnte
Matthew Lock
2
Ich habe alle verarbeiteten Threads geschlossen, aber das Problem blieb bestehen.
Tomáš Zato - Wiedereinsetzung von Monica