it-swarm-eu.dev

Taskkill/f non uccide un processo

Quando avvio un'istanza Experimental di VS da VS per eseguire il debug e interrompere il debug (a volte direttamente dal VS padre), rimane un processo di devenv.exe in esecuzione che non riesco ad eliminare. Tiene le mani su molte delle mie dll.

Siccome sono connesso a questa macchina Win7 a 64 bit come amministratore, mi aspetterei di essere in grado di uccidere qualsiasi processo che desidero.

I tried (from Administrator command Prompt):

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

Nessuno restituisce alcun errore e TASKKILL e PSKILL hanno restituito messaggi di successo di terminazione/eliminazione del processo. Ma il file devenv.exe è ancora in esecuzione, non viene generato nuovamente come PID rimane costante. Va via solo al riavvio del sistema che non è una grande soluzione.

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

Process Monitor shows devenv to be in some kind of 'Process Profiling' loop

Lo screenshot di cui sopra è l'output di Process Monitor che mostra che devenv si trova in una sorta di loop "Process Profiling" (fai clic con il pulsante destro del mouse su di esso e fai clic su apri l'immagine in una nuova scheda per vederlo correttamente).

Qualche idea su come uccidere un simile processo su Windows?

112
dushyantp

devi anche uccidere il processo figlio se qualche spawnato uccide con successo il tuo processo

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process
66
aaa

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 lavorato con "kill -id pid"

26
Gnampf

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

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

Per riassumere, è possibile che sia dovuto a richieste di I/O non elaborate che non sono state gestite correttamente (tramite un driver di dispositivo a cui è possibile accedere al programma)

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

22
Francis

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

Ho avuto più fortuna con questo:

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

So che è tardi ma taskkill /im devenv.exe /t /f dovrebbe funzionare. il /t uccide anche i processi figli.

9
nephi12

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 di driver di rete, provocato dalla patch di Windows Update KB4338818 (Windows 7 x64). Dopo aver disinstallato la patch, tutto è tornato alla normalità. Ho solo pensato che potesse essere utile per gli altri.

5
Danita

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

Potresti provare a utilizzare PowerShell: Get-Process devenv | uccidere

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

5
Thomas Lee

Potrei risolvere il problema sollevando questo problema uccidendo Explorer.exe che a sua volta era dedito al processo che volevo uccidere. Immagino che questo possa accadere anche se i processi aprono le interfacce tramite hook che può essere bloccato.

5
seansilver

Nativo tskill <pid> (o tskill.exe <pid>) ha funzionato per me su Windows 10 dove non ha avuto altra risposta nativa.

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

Questo è molto strano poiché taskkill è preteso di essere una versione migliore-api-e-fa-di tskill.

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

3
Zig

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

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

usando il comando Prompt. Anche Power Shell non è stato d'aiuto. semplicemente eseguiva 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 avviso mi ha dato 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 bacato.

Vale sicuramente la pena provare se nessuna delle soluzioni funziona. 

2
Astroynamicist

Alcuni file Exe dipendenti da alcuni servizi, 

Quindi è necessario trovare il rispettivo servizio e fermarsi prima.

2
girish

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 era sysinternal'spskill

>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 pskill da il sito live di sysinternal

2
Phillip Ngan

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

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

L'ho risolto facendo quanto segue:

  • Disinstallare la patch di Windows Update KB4338818 
  • Installa la patch di aggiornamento di Windows KB4338821
2
Philippe GRANET

Ho il problema con i processi di debugging con gdb in Code :: Blocks . Non appena è sospeso mentre accidentalmente passo a istruzioni fuori dall'ambito delle tue fonti (come librerie senza risorse o funzioni di sistema) non puoi uscire dal debug né da Codice :: Blocchi 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 spariti.

Fatto.

1
kolp

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

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

Se si scarica 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 la sua opzione -t.

1
BenV136

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

Cerca cmd nel tuo menu di Windows e fai clic con il tasto destro su Run as Administrator, Quindi esegui di nuovo il comando. Questo ha funzionato per me.

1
Kevin Li

Ho fatto quanto segue, su un powershell elevato:

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

comando Uscita:

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

Out Parametri:

instance of __PARAMETERS
{ReturnValue = 0; };

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

1
Lakoroll

Come Francis menzionato alcuni processi non possono essere terminati a causa di 

"Richieste I/O non elaborate"

Nella mia esperienza ho avuto a che fare con buggy driver grafico che avrebbe causato il crash del mio gioco e non essere in grado di chiuderlo, come ultima risorsa ho disabled il driver grafico e il processo alla fine è andato via.

Se la tua applicazione è in attesa di risorsa da driver come wifi o prova grafica disabilitazione in device manager, devi scavare un po 'in profondità per vedere dove sono impiccati.

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

0
Masoud R

Ho avuto lo stesso problema e molti altri hanno detto che nessuno dei normali comandi di Kill ha funzionato. Il mio file 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 è una cosa facile da riavviare durante una giornata di lavoro. Anche quando l'utente si è disconnesso da exe era ancora elencato in Task Manager. Ho inviato al server in cui è stata condivisa la cartella e da Gestione computer -> Sessioni trovato l'utente con la sessione ancora aperta da quel server RDP anche se è stato disconnesso. Tasto destro -> Chiudi sessione e il blocco file è stato rilasciato.

Mi fa capire perché non potevo finire il tak. Il messaggio di errore che stavo originariamente ricevendo quando provo a eliminare il file è stato "L'azione non può essere completata perché il file è aperto nel sistema"

Spero che questo aiuti qualcun altro.

0
David Pollard

Ho affrontato lo stesso problema in cui ho avviato un'app di 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 correttamente.

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

Infine, ho dovuto riavviare in SafeMode e rinominare la cartella del progetto e riavviare. I processi Node che stavano consumando la porta 3000 si sono uccisi.

0
Aaman

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 dove dovevo riavviare, il/T non funzionerebbe.

0
Jeremy

Funzionando come un amministratore funziona per me:

1.search cmd in windows

2. Fare clic su cmd selezionare come "Esegui come amministratore"

3 .nestat -ano | findstr :8080

4 .taskkill/pid (your number) /F

 My result

0
Qing Yuan

Ho avuto lo stesso problema, prova a eseguire cmd come "Esegui come amministratore". 

0
Usman

NirSoft's NirCmd ha fatto il lavoro per me:

nircmd killprocess "process name.exe"

la pagina man di killprocess è qui .

0
Saxtus