Come uccidere un'attività che "manca di un'istanza"?


19

Spotify per primo si è ucciso, ma "qualcosa del genere" ha continuato a persistere, che era rilevabile come compito con PID 8664 e a giudicare dal fatto che l'utilizzo della RAM continuava a cambiare di volta in volta - "faceva qualcosa".

Ora prima di tutto questo processo mi ha impedito di ascoltare la musica perché Spotify ha rifiutato di riavviarsi a causa di questa istanza in giro.

Quindi ho provato a liberarmi di questo processo. Ma né il task manager né il comando taskkill (come Admin ovviamente) sono riusciti a farlo.

taskkill mi ha dato almeno una "ragione" che tradurrò qui.

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

entrambi hanno dato:

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

Vorrei sapere cosa significa e se esiste un'altra opzione su come terminare tale processo.

(Windows 7 Pro 64 bit)


Significa che Spotify non è in esecuzione o hai l'ID processo errato. Non è possibile "nascondere" un processo in Windows. Come hai stabilito che l'id di processo in questione era collegato a Spotify.
Ramhound,

non c'era nulla di "nascosto" e il PID era corretto
Raffael

1
@Ramhound, su "Non è possibile" nascondere "un processo in Windows". Sembra possibile, se consideriamo ad esempio questa domanda security.stackexchange.com/questions/84385/… o questa domanda security.stackexchange.com/questions/24848/…
user100487

@ user100487 - Non c'è assolutamente nulla che tu possa fare in un processo per nasconderlo, che con le mie conoscenze, mi farebbe sì che non lo trovassi. Ogni metodo descritto in quelle risposte collegate ha una soluzione alternativa, in alcuni casi potrei avere problemi ma ti garantisco che potrei trovare una soluzione. Se posso farlo, allora chiunque può farlo. Per favore, evita di farmi domande su questo vecchio, è fastidioso, poiché il tuo commento non è costruttivo dopo tutto questo tempo. "
Ramhound

1
certamente sì "qualsiasi processo può essere trovato". Tuttavia, possono essere nascosti alla vista se si utilizzano solo gli strumenti menzionati da OP (Task Manager di Windows o Task Kill). È tutto.
user100487

Risposte:


12

Il processo è quasi certamente già morto, ovvero non esegue più alcun codice. Tuttavia, la contabilità al riguardo non scompare fino a quando non viene chiusa ogni maniglia e ciascuno dei suoi thread. Potresti avere un altro programma che mantiene tale handle aperto (i programmi antivirus sono probabilmente un colpevole), oppure potrebbe aver fatto una richiesta prima della sua morte a un driver in modalità kernel che è ora bloccato (una volta avevo un'unità CD che causava questo un sacco). Ulteriori letture: "Perché alcuni processi rimangono nel Task Manager dopo essere stati uccisi?" e "Perché ci sono tutti questi processi che persistono vicino alla morte, e cosa li mantiene in vita?"

Spotify si rifiuta di riavviarsi perché vede una copia di se stesso già in esecuzione, ma a quanto pare cerca solo un altro processo chiamato spotify. (Un'applicazione a istanza singola è la propria negazione del servizio, nelle parole di Raymond Chen.) Il modo più semplice per risolvere questo problema sarebbe riavviare il computer, poiché ciò eliminerà tutti gli handle e la contabilità.

Ma se hai davvero voglia di Fixing It Yourself TM , scarica Process Explorer , un'utilità gratuita straordinariamente utile da Sysinternals. (Non ho affiliazione.) Eseguilo, non è necessaria l'installazione e accetta l'EULA. In File, seleziona Mostra dettagli per tutti i processi ; ciò provoca il riavvio di Process Explorer come amministratore. Quindi, in Trova, scegli Trova handle o DLL . Digita il nome del processo zombie (beh, cadavere) e premi Cerca.

alla ricerca di maniglie

Le colonne Processo e PID indicano quale processo possiede l'handle. La colonna Tipo indica che tipo di cosa è; siamo interessati a quelli di tipo Process o Thread . La colonna Nome indica a cosa serve l'handle. (Molti processi si gestiscono da soli; questi andranno via se l'applicazione proprietaria termina senza problemi in modalità kernel.)

Pericolo : chiudere una maniglia di cui un'applicazione ha davvero bisogno è un ottimo modo per bloccarla. Se possibile, chiudere l'applicazione proprietaria dell'handle. Ma se non puoi, o hai solo voglia di colpire le cose con i martelli ...

Fare clic su una voce nella finestra di ricerca per aprire il riquadro degli handle. Fare clic con il tasto destro del mouse sulla voce appena evidenziata in quel riquadro e scegliere Chiudi maniglia per rimuoverla dall'esistenza.

Una volta chiusi tutti gli handle, il processo svanirà.


Non sono riuscito a farlo funzionare ProcessExplorer si blocca molto facilmente e non avevo alcun processo che avesse una maniglia che potevo chiudere
Matthew Lock,

2
Ho chiuso tutto gestito a tutti i thread ma il problema persisteva.
Tomáš Zato - Ripristina Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.