Taskkill / f non uccide un processo


140

Quando avvio un'istanza sperimentale di VS da VS per il debug e interrompo il debug (a volte direttamente dal VS padre), rimane in esecuzione un processo zombile devenv.exe che non riesco a uccidere. Si aggrappa a molte delle mie dll.

Dato che sono collegato a questa macchina Win7 a 64 bit come amministratore, mi aspetterei di essere in grado di terminare qualsiasi processo desiderassi.

I tried (from Administrator command prompt):

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

Nessuno restituire alcun errore e TASKKILLe PSKILLmessaggi di successo restituiti di terminazione / uccidendo il processo. Ma devenv.exe funziona ancora, non viene rigenerato comePID rimane costante. Va via solo al riavvio del sistema che non è un'ottima soluzione.

Nota. LockHunter mostra che devenv ha un lucchetto su se stesso. E non può sbloccarlo.

Process Monitor mostra che devenv si trova in una sorta di ciclo "Process Profiling"

Lo screenshot sopra è l'output di Process Monitor che mostra devenv in una sorta di ciclo 'Process Profiling' (fai clic destro su di esso e fai clic su Apri immagine in una nuova scheda per vederlo correttamente).

Qualche idea su come uccidere un tale processo su Windows?


Non ho idea del perché non ricevi un errore, ma per verificare una cosa: hai chiamato questi comandi da un prompt dei comandi con privilegi elevati? Altrimenti i comandi non verranno eseguiti con i privilegi di amministratore, anche se l'account li possiede. (Ciò non dovrebbe consentire loro di restituire il successo quando hanno chiaramente fallito;))
SvenS

1
sì, tutti i comandi sono stati eseguiti dai prompt dei comandi dell'amministratore.
Dushyantp,

3
Questo tipo di domanda è più appropriato su superuser.com . Sì, hanno spiegazioni abbastanza buone lì. Questo mi ha aiutato.
Jarekczek,

Risposte:


81

devi anche uccidere il processo figlio se viene generato uno per uccidere con successo il tuo processo

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process

25
Nel mio caso stampa due messaggi di successo, ma il processo è ancora lì. Che diavolo?
CodeManX,

3
se sarebbe così facile :) no, non aiuta. Penso che il suo problema sia dovuto al fatto che il processo invendibile si trova in qualche ciclo (socket, I / O, pipe ...) in cui il processo principale è il processo di sistema e ucciderlo renderà instabile il sistema. In tal caso, consiglierei innanzitutto di capire in quale loop è il processo. Quindi, se quel loop è lo scambio di rete con un altro endpoint, scollegare semplicemente il cavo di rete o disconnettere la connessione già stabilita.

75
Ottengo un There is no running instance of the task processo che davvero non vuole morire!
demongolem,

1
mi aiuta ancora oggi, anche se devo uccidere anche il "figlio del bambino": taskkill / f / T / PID 4172 ==> ERRORE: il processo con PID 4172 (processo figlio di PID 4724) non può essere terminato. ==> taskkill / f / T / PID 4724 ==> Fatto
Hoàng Long

1
Yay per l' /Tinterruttore sotto menzionato !
kayleeFrye_onDeck,

34

I metodi taskkill e powershell (kill) non hanno funzionato per me; diceva ancora "Accesso negato".

Ho avuto più fortuna con questo:

wmic process where "name='myprocessname.exe'" delete

6
ERRORE: Descrizione = Query non valida
user1133275

51
Windows 10. Inoltre: ERROR: Description = Access denied(utilizzando la console di amministrazione tra l'altro)
FractalSpace l'

1
Grazie! Questo ha funzionato come un incantesimo per il mio npm bloccato
Eduardo Elias Saléh

1
Fantastico, grazie mille. Ho passato un'ora per uccidere prima che lo trovassi
Derek MC,

2
Questo non funziona ancora nel mio caso. Avere Visual Studio bloccato nei processi, eseguito il comando e si dice Eliminazione dell'istanza \\ MyMachine \ ROOT \ CIMV2: Win32_Process.Handle = "6420", Eliminazione dell'istanza riuscita. Ma dopo 5 minuti vedo ancora il processo VS devenv.exe nell'elenco di task manager. Immagino nient'altro che un riavvio è l'unica soluzione per me.
wctiger,

30

Ho appena avuto lo stesso problema su Windows Server 2008 R2 e nulla ha aiutato, non taskmanager o taskkill. Ma Windows PowerShell funziona come amministratore ha funzionato con "kill -id pid"


3
Questo ha funzionato per me ... anche se sembrava che ci fosse stato un ritardo di circa 30 secondi prima che il processo effettivamente andasse via, quindi all'inizio sembrava non riuscire. Nel caso che avessi avuto era un processo che è stato creato proceduralmente da un'altra applicazione mentre il sistema era a corto di risorse. Process Explorer, kill process tree e molte altre cose non hanno funzionato, ma questo ha funzionato.
J. Paulding,

4
Non ha funzionato per me, mi ha dato un errore in grado di uccidere il processo ecc
Ecc.

@rboy. So che è vecchio, ma nel caso in cui qualcun altro lo veda fare quello che ho fatto. Apri powershell come amministratore e quindi eseguilo. All'inizio non l'ho eseguito come amministratore e mi ha detto che non potevo farlo. Quindi l'ho eseguito come amministratore e ha funzionato.
Chris Jones,

Questo ha funzionato per me su Windows 10 con un servizio Windows che si comportava male. Aveva già provato CMD, in questo caso PowerShell è lo strumento giusto
ThetaSinner

5
Nessuna fortuna per me anche dopo aver aspettato più di 2-3 minuti. nessuno dei comandi attualmente funziona per me
Tarun Gupta,

28

Il riavvio è l'unica soluzione che ha funzionato per me (finora).

Il sempre eccellente Mark Russonovich ha una buona spiegazione per i processi non verificabili.

Riassumendo, è del tutto possibile che ciò sia dovuto a richieste I / O non elaborate che non sono state gestite correttamente (da un driver di dispositivo a cui il tuo programma potrebbe aver effettuato l'accesso)

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


1
Quello che ho fatto è stato spegnerlo, quindi riavviarlo.
Gellie Ann,

10

So che è tardi ma taskkill /im devenv.exe /t /fdovrebbe funzionare. la /tuccide processi figli anche.


12
Questo non sembra funzionare per me. Dice che ha successo, ma il processo si presenta ancora.
Scott Whitlock,

2
Anch'io sto affrontando un problema simile ma con il servizio microsoft ftp, dice terminato ma continua a non essere in grado di capirlo
Rboy

1
Se invece di /IM devenv.exeusare /PID 17888allora l'errore sostanzialmente diceva che 17888 è un figlio di 17880 e 17880 non è in esecuzione e quindi non può essere ucciso.
Jesse Chisholm,

funziona ma assicurati di utilizzare cmd dalla modalità amministratore.
karan,

Non ha funzionato per me, cercando di eliminare il processo di Windows Defender che utilizza quasi il 100% dell'accesso al disco.
David Spector

7

Nel mio caso, dopo diversi giorni di lotta con questo problema (stava accadendo ai processi VirtualBox e µTorrent), ho scoperto che era causato da un problema del driver di rete, provocato dalla patch di Windows Update KB4338818 (Windows 7 x64). Dopo aver disinstallato quella patch, tutto è tornato alla normalità. Ho solo pensato che potesse essere utile per gli altri.


Come hai scoperto che l'aggiornamento l'ha causato? Penso che non l'avrei mai scoperto. ^^ '
das Keks

1
Mi sono reso conto che l'unica cosa che è cambiata nella mia macchina prima che il problema diventasse evidente erano gli aggiornamenti, quindi ho controllato quale era il mio ultimo aggiornamento e ho letto le note di rilascio. Mi è sembrato sospetto e sono tornato indietro per vedere se il problema era stato risolto. Poi ho letto su alcuni forum di Apache, non ricordo quale, questo aggiornamento ha causato problemi anche a loro. A proposito: l'ultimo aggiornamento di Windows a partire da 2018 / Aug / 10 risolve il problema con KB4338818, quindi può essere reinstallato.
Danita,

6

Ho potuto risolvere il mio problema risolvendo questo problema uccidendo explorer.exe che a sua volta era dipendente dal processo che volevo uccidere. Immagino che ciò possa accadere anche se i processi aprono interfacce tramite hook che possono essere bloccate.


1
Ho provato a uccidere e riavviare explorer.exe e non ha funzionato.
Scott Whitlock,

Quando ho fatto taskkill /IM "process_name" /T /Fparte della risposta era: (child process of PID xxxx)così ho controllato quel PID ed era explorer.exe, riavviandolo ho risolto il mio problema.
Facundo Colombier,

5

L'ho visto alcune volte e la mia unica soluzione era un riavvio.

È possibile provare a utilizzare PowerShell: Get-Process devenv | uccidere

Ma se gli altri metodi falliscono, probabilmente lo sarà anche questo. :-(


Purtroppo sì! Anche per me è il caso. hai mai avuto una soluzione?
manocha_ak,

Non ha funzionato per me su win10: PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip | uccidi PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> echo $? True PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip Handles NPM (K) PM (K) WS (K) CPU (s) ID SI Nome processo ------- - ---- ----- ----- ------ - - ----------- 0 0 56 20 0,00 41236 1 NSPRip
zhaorufei

4

Nativo tskill <pid>(otskill.exe <pid> ) ha funzionato per me su Windows 10 dove nessun'altra risposta nativa ha funzionato.

Nel mio caso, ho avuto alcuni processi chrome.exe per i quali funzionava "End Task" del task manager, ma né taskkill /F /T /PID <pid>né PowerShellkill -id <pid> funzionava (anche con entrambe le shell eseguite come admin).

Questo è molto strano in quanto taskkillsi presume che sia una versione migliore di api e fa di più tskill.

Nel mio caso ho ucciso tutte le istanze di un determinato compito FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i


1
Questo ha funzionato per me, quando nessuno degli altri ha fatto.
Grazie

3
Non ha funzionato per me. OttenutoEnd Process failed for 10576:Access is denied.
twasbrillig il

Succede lo stesso per me. Quello che non riesco a capire, è perché? taskkill dovrebbe essere lo stesso di tskill [piuttosto meglio, nella documentazione ecc.]. Se qualcuno potesse rispondere?
dvlper,

1
Sembra che non ci sia tskill in Windows 10
raffaem

Non ha funzionato per me, cercando di eliminare il processo di Windows Defender che utilizza quasi il 100% dell'accesso al disco.
David Spector

3

Ho intenzione di suggerire qualcosa qui perché di recente ho affrontato lo stesso problema e ho provato ogni cosa possibile nelle risposte, ma nulla ha funzionato. Stavo ricevendo errori come

ERRORE: impossibile terminare il processo con PID 23908. Motivo: non esiste un'istanza in esecuzione dell'attività.

usando il prompt dei comandi. Neanche la Power Shell è stata utile. eseguirà semplicemente i comandi e nessuna risposta con il processo ancora in esecuzione.

Fino a quando non ho deciso di eliminare il file ".exe" associato. Poiché il file era attivo, Windows non consentiva la cancellazione, ma in quella finestra di avvertimento mi dava il nome del processo che stava trattenendo l'attività che volevo uccidere. Sono stato in grado di uccidere l'attività originale e quindi il processo con errori.

Vale sicuramente la pena provare se nessuna delle soluzioni funziona.


3

Stavo ottenendo i seguenti risultati con 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.

Ciò che ha funzionato per me è stato di 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.

Puoi ottenere pskilldal sito live di sysinternal


2
Non ha funzionato per me. Ottenuto:Unable to kill process 10576: Access is denied.
twasbrillig il

1
Potrebbe essere necessario farlo da una shell dei comandi con diritti di amministratore?
BenV136,

2

Alcuni dei file Exe dipendono da alcuni servizi,

Quindi è necessario trovare il rispettivo servizio e fermarsi prima.


4
qualche suggerimento su come risolverlo? Sul taskmanager non mostra alcun servizio corrispondente a devenv.exe In questo momento sto cercando di ricreare il problema, una volta fatto userò Process Explorer per scavare in servizi che potrebbero trattenerlo.
Dushyantp,

2

Lo stesso problema mi è successo in VirtualBox rispetto ai processi Java.

Nel mio caso, era dovuto a un bug nella patch di Windows Update KB4338818 (Windows 7 x64).

L'ho risolto nel modo seguente:

  • Disinstallare la patch di Windows Update KB4338818
  • Installa la patch di Windows Update KB4338821

2

L'esecuzione come amministratore funziona per me:

1.cerca cmdin windows

2.Fare clic su cmdSeleziona come "Esegui come amministratore"

3.netstat -ano | findstr :8080

4.taskkill/pid (your number) /F

Il mio risultato


Se viene visualizzato un errore del tipo: 'nestat' non viene riconosciuto come comando interno o esterno, programma eseguibile o file batch. potrebbe essere necessario eseguire il comando come C: \ Windows \ system32 \ netstat.exe anziché semplicemente nestat
sk8asd123

2

Per me, il modo in cui ha funzionato è che devo uccidere il processo genitore. Capisci il processo genitore e uccidilo

taskkill /IM "parent_process_name.exe" /T /F

1

Ho il problema con i processi di debug con gdb in Code :: Blocks. Non appena si blocca mentre si inseriscono accidentalmente le istruzioni fuori dall'ambito delle risorse (come librerie senza fonti o funzioni di sistema) non è possibile uscire dal debug né da Code :: Blocks né da Task-Manager.

Penso che sia un errore nell'implementazione di gdb in Code :: Blocks, ma potrebbe anche essere in gdb;)

La mia soluzione:

taskkill /F /IM process.exe /T

Questo mostra il PID del processo genitore. Ora uccidi il genitore:

taskkill /PID yyyy

Entrambi sono andati.

Fatto.


1
È possibile che il PID padre non esista.
user1133275

Specifica cosa sono gdb e Code :: Blocks;)
bluastro

3
Avvertenza: se il processo genitore sta services.exeuccidendo il genitore può causare BSOD
MM il

1

se taskkill /F /T /PID <pid>non funziona. Prova ad aprire il tuo terminale di Run as Administrator.

Cerca cmdnel menu di Windows, fai clic con il pulsante destro del mouse Run as Administrator, quindi esegui nuovamente il comando. Questo ha funzionato per me.


1

Se scarichi la suite sysinternals gratuita, ha un'applicazione pskill.exe che funziona bene per questi tipi di attività: pskill.exe "nome_processo" Funziona su questi processi anche senza usare l'opzione -t.


1

Ho fatto quanto segue, su una PowerShell elevata:

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

comando comando:

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

Fuori parametri:

instance of __PARAMETERS
{ReturnValue = 0; };

Ho ottenuto alcune informazioni sulla sintassi su: https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb


Questo in realtà ha funzionato, dovrebbe essere accettata la risposta. Grazie
John Newman,

0

NirCmd di NirSoft ha fatto il lavoro per me:

nircmd killprocess "process name.exe"

La pagina man di killprocess è qui .


0

Ho riscontrato lo stesso problema in cui ho avviato un'app nodo nella porta 3000 e non si chiudeva correttamente e il processo continuava a funzionare anche dopo il riavvio.

Nessuno dei comandi taskkill o powershell in esecuzione in modalità amministratore ha funzionato per me.

Ho usato MS Process Expoler> Proprietà> Immagine> Directory corrente (che doveva essere la directory del mio progetto).

Alla fine, ho dovuto riavviare in SafeMode, rinominare la cartella del progetto e riavviare. I processi del nodo che stavano consumando la porta 3000 si sono suicidati.


0

Ho avuto lo stesso identico problema, ho trovato questa correzione su un altro sito: powershell.exe "Get process processname | Stop-Process" ha funzionato per me ed ero nella stessa barca in cui dovevo riavviare, il / T non funzionava .


0

Come accennato da Francesco, alcuni processi non possono essere interrotti a causa di

"richieste I / O non elaborate"

Nella mia esperienza avevo a che fare con un driver grafico difettoso che avrebbe causato il crash del mio gioco e non essere stato in grado di chiuderlo, come ultima risorsa ho disabilitato il driver grafico e il processo è finalmente andato via.

Se l'applicazione è in attesa di una risorsa da driver come wifi o grafica, provare a disabilitarli in Gestione dispositivi , devi scavare un po 'in profondità per vedere dove sono stati impiccati.

Questo ovviamente non è raccomandato ma a volte non hai più nulla da perdere.


0

Ho avuto lo stesso problema e come molti altri qui hanno detto che nessuno dei normali comandi di Kill ha funzionato. Il mio file di problema era un eseguibile che veniva eseguito da una condivisione di rete da un utente su un server Desktop remoto. Con più utenti condivisi non è facile riavviare durante una giornata lavorativa. Anche quando l'utente si è disconnesso da exe era ancora elencato in Task Manager. Ho inviato al server in cui era stata condivisa la cartella e da Gestione computer -> Sessioni ha trovato l'utente con la sessione ancora aperta da quel server RDP anche se era disconnesso. Tasto destro del mouse -> Chiudi sessione e il blocco file è stato rilasciato.

Mi colpisce perché non ho potuto porre fine ai taks. Il messaggio di errore che originariamente ricevevo quando provavo a eliminare il file era "Impossibile completare l'azione perché il file è aperto nel sistema"

Spero che questo aiuti qualcun altro.


0

Nel mio caso nessuna delle soluzioni qui ha funzionato. Alla fine ho scoperto che il programma in questione era bloccato cercando di eseguire il polling delle interfacce audio USB. Quindi ho scollegato un DAC USB che avevo collegato e con mia sorpresa l'applicazione si è chiusa all'istante. La risposta di Francis menziona che potrebbe essere il risultato di "richieste di I / O non elaborate che non sono state gestite correttamente (da un driver di dispositivo a cui il tuo programma ha probabilmente avuto accesso)", il che potrebbe spiegare perché ciò ha risolto il problema.

Suppongo che dipenda davvero da cosa stava facendo il programma quando si è bloccato, ma se nessuna delle altre soluzioni funziona, prova a scollegare tutti i dispositivi USB per vedere se una di esse potrebbe essere la causa.



-8
  1. aprire task manager
  2. seleziona la scheda servizi
  3. selezionare il processo (devenv.exe) che si desidera eliminare e fare clic sul pulsante servizi
  4. proprio sul processo, selezionare le proprietà e disabilitarlo ...
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.