Taskkill / f nie zabija procesu


140

Kiedy uruchamiam eksperymentalną instancję VS z VS w celu debugowania i zatrzymuję debugowanie (czasami bezpośrednio z nadrzędnego VS), proces zombile devenv.exe pozostaje uruchomiony, którego nie mogę zabić. Zachowuje wiele moich bibliotek dll.

Ponieważ jestem zalogowany na tej 64-bitowej maszynie Win7 jako Administrator, spodziewałbym się, że będę mógł zabić każdy proces, który zechcę.

I tried (from Administrator command prompt):

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

Brak powrotu błędów i TASKKILLoraz PSKILLzwróconych wiadomości sukces kończącym / zabicie procesu. Ale devenv.exe nadal działa, nie jest ponownie uruchamiany, ponieważ PIDpozostaje stały. Znika dopiero po ponownym uruchomieniu systemu, co nie jest dobrym rozwiązaniem.

Uwaga. LockHunter pokazuje, że devenv sam się zamknął. I nie może go odblokować.

Process Monitor pokazuje, że devenv jest w jakiejś pętli `` profilowania procesu ''

Powyższy zrzut ekranu jest wyjściem z Process Monitor pokazującym devenv jako coś w rodzaju pętli `` Process Profiling '' (kliknij prawym przyciskiem myszy i kliknij otwórz obraz w nowej karcie, aby zobaczyć go poprawnie).

Jakieś pomysły, jak zabić taki proces w systemie Windows?


Nie mam pojęcia, dlaczego nie pojawia się błąd, ale w celu sprawdzenia jednej rzeczy: czy wywołałeś te polecenia z wiersza polecenia z podwyższonym poziomem uprawnień? W przeciwnym razie polecenia nie będą działać z uprawnieniami administratora, mimo że Twoje konto je ma. (To nie powinno pozwolić im na powrót sukcesu, chociaż wyraźnie zawiedli;))
SvenS

1
tak, wszystkie polecenia zostały uruchomione z wiersza poleceń administratora.
dushyantp,

3
Tego rodzaju pytanie jest bardziej odpowiednie na superuser.com . Tak, mają tam całkiem dobre wyjaśnienia. Ten mi pomógł.
Jarekczek

Odpowiedzi:


81

musisz też zabić proces potomny, jeśli któryś z nich powstał, aby pomyślnie zabić proces

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process

25
W moim przypadku wypisuje dwa komunikaty o sukcesie, ale proces nadal istnieje. Co do cholery?
CodeManX

3
gdyby to było takie proste :) nie, to nie pomaga. Myślę, że jego problem polega na tym, że niemożliwy do zabicia proces znajduje się w jakiejś pętli (gniazdo, we / wy, potoki ...), gdzie głównym procesem jest proces systemowy, a jego zabicie spowoduje, że system będzie niestabilny. W takim przypadku radziłbym najpierw zrozumieć, w jakiej pętli znajduje się proces. Następnie, jeśli ta pętla jest wymianą sieciową z innym punktem końcowym, po prostu odłącz kabel sieciowy lub rozłącz już ustanowione połączenie.

75
Rozumiem. There is no running instance of the task Ten proces naprawdę nie chce umierać!
demongolem

1
nadal pomóż mi dzisiaj, chociaż muszę też zabić "dziecko dziecka": taskkill / f / T / PID 4172 ==> BŁĄD: Proces z PID 4172 (proces potomny PID 4724) nie mógł zostać zakończony. ==> taskkill / f / T / PID 4724 ==> Gotowe
Hoàng Long

1
Brawo za nie wspominany /Tprzełącznik!
kayleeFrye_onDeck

34

Metody taskkill i powershell (kill) nie działały dla mnie; nadal było napisane „Odmowa dostępu”.

Miałem więcej szczęścia z tym:

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

6
BŁĄD: Opis = Nieprawidłowe zapytanie
user1133275

51
Windows-10. Ponadto: ERROR: Description = Access denied(przy okazji przy użyciu konsoli administracyjnej)
FractalSpace

1
Dziękuję Ci! To zadziałało jak urok dla mojego
utkniętego

1
Niesamowite, wielkie dzięki. Spędziłem godzinę na zabijaniu, zanim to znalazłem
Derek MC

2
Ten nadal nie działa w moim przypadku. Program Visual Studio utknął w procesach, uruchom polecenie i wyświetli komunikat Usuwanie wystąpienia \\ MyMachine \ ROOT \ CIMV2: Win32_Process.Handle = "6420", Usunięcie wystąpienia powiodło się. Ale po 5 minutach nadal widzę proces VS devenv.exe na liście menedżera zadań. Wydaje mi się, że jedynym rozwiązaniem jest dla mnie tylko restart.
wctiger,

30

Po prostu miałem ten sam problem w systemie Windows Server 2008 R2 i nic nie pomogło, ani menedżer zadań, ani zadanie. Ale Windows PowerShell działa, gdy administrator pracował z „kill -id pid”


3
To zadziałało dla mnie ... chociaż wydawało się, że było około 30 sekund opóźnienia, zanim proces faktycznie zniknął, więc na początku wydawało się, że zawiódł. W przypadku, gdy miałem, był to proces, który został utworzony proceduralnie przez inną aplikację, podczas gdy system miał mało zasobów. Process Explorer, zabij drzewo procesów i kilka innych rzeczy nie zadziałało, ale to załatwiło sprawę.
J. Paulding,

4
Nie działał dla mnie, dał mi błąd, który nie mógł zabić procesu itp.
Itp.

@rboy. Wiem, że jest stary, ale na wypadek, gdyby ktoś inny zobaczył, jak robi to, co ja. Otwórz PowerShell jako Administrator, a następnie uruchom go. Na początku uruchomiłem go nie jako admin i powiedział mi, że nie mogę tego zrobić. Więc uruchomiłem go jako admin i zadziałało.
Chris Jones,

To zadziałało dla mnie w systemie Windows 10 z źle działającą usługą Windows. Próbowałem już CMD, w tym przypadku PowerShell jest właściwym narzędziem
ThetaSinner

5
Nie mam szczęścia, nawet jeśli czekałem dłużej niż 2-3 minuty. żadne z poleceń obecnie nie działa dla mnie
Tarun Gupta

28

Reboot to jedyne rozwiązanie, które działało dla mnie (do tej pory).

Zawsze doskonały Mark Russonovich ma dobre wyjaśnienie niemożliwych do zabicia procesów.

Podsumowując, jest całkiem możliwe, że jest to spowodowane nieprzetworzonymi żądaniami we / wy, które nie zostały prawidłowo obsłużone (przez sterownik urządzenia, do którego prawdopodobnie uzyskał dostęp twój program)

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


1
Wyłączyłem go, a następnie uruchomiłem ponownie.
Gellie Ann

10

Wiem, że jest późno, ale taskkill /im devenv.exe /t /fpowinno działać. /tzabija procesy potomne też.


12
To chyba nie działa dla mnie. Mówi, że się udało, ale proces nadal się pojawia.
Scott Whitlock,

2
Mam podobny problem, ale z usługą ftp firmy Microsoft mówi, że została zakończona, ale nadal działa, nie mogę tego zrozumieć
rboy

1
Jeśli zamiast /IM devenv.exeużywać /PID 17888wówczas błąd w zasadzie powiedzieć, że 17.888 jest dzieckiem 17880 i 17880 nie jest uruchomiony, a więc nie może być zabity.
Jesse Chisholm

to działa, ale upewnij się, że używasz cmd w trybie administratora.
karan

Nie działa dla mnie, próbując usunąć proces Windows Defender, który wykorzystuje prawie 100% dostępu do dysku.
David Spector

7

W moim przypadku po kilku dniach walki z tym problemem (dotyczyło to procesów VirtualBox i µTorrent) odkryłem, że jest to spowodowane problemem ze sterownikiem sieciowym, wywołanym poprawką KB4338818 Windows Update (Windows 7 x64). Po odinstalowaniu tej poprawki wszystko wróciło do normy. Pomyślałem, że to może być przydatne dla innych.


Jak odkryłeś, że spowodowała to aktualizacja? Myślę, że nigdy bym tego nie odkrył. ^^ '
das Keks

1
Zdałem sobie sprawę, że jedyną rzeczą, która zmieniła się w moim komputerze, zanim problem stał się widoczny, były aktualizacje, więc sprawdziłem, która z nich była ostatnią aktualizacją, i przeczytałem informacje o wydaniu. Wydawało się to podejrzane, więc wycofałem się, aby sprawdzić, czy problem został rozwiązany, co to było. Potem przeczytałem na niektórych forach Apache, nie pamiętam, które, że ta aktualizacja sprawiła im również kłopoty. BTW: Ostatnia aktualizacja systemu Windows z 2018 / sierpnia / 10 rozwiązuje problem z KB4338818, dzięki czemu można go zainstalować ponownie.
Danita

6

Mogłem rozwiązać ten problem, zabijając program explorer.exe, który z kolei był uzależniony od procesu, który chciałem zabić. Myślę, że może się to również zdarzyć, jeśli procesy otwierają interfejsy za pośrednictwem haka, który może być zablokowany.


1
Próbowałem zabić i ponownie uruchomić explorer.exe i to nie zadziałało.
Scott Whitlock,

Kiedy zrobiłem, taskkill /IM "process_name" /T /Fczęść odpowiedzi brzmiała: (child process of PID xxxx)więc sprawdziłem ten PID i był to explorer.exe, ponowne uruchomienie rozwiązało mój problem.
Facundo Colombier

5

Widziałem to kilka razy i moim jedynym rozwiązaniem było ponowne uruchomienie.

Możesz spróbować użyć programu PowerShell: Get-Process devenv | zabić

Ale jeśli inne metody zawiodły, to prawdopodobnie również. :-(


Niestety tak! U mnie też tak jest. czy kiedykolwiek dostałeś jakieś rozwiązanie?
manocha_ak

Nie działało dla mnie na win10: PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip | zabić 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 ProcessName ------- - ---- ----- ----- ------ - - ----------- 0 0 56 20 0,00 41236 1 NSPRip
zhaorufei

4

Natywny tskill <pid>(lub tskill.exe <pid>) działał dla mnie w systemie Windows 10, gdzie nie działała żadna inna natywna odpowiedź.

W moim przypadku miałem kilka procesów chrome.exe, dla których działało `` End Task '' menedżera zadań, ale ani taskkill /F /T /PID <pid>nie kill -id <pid>działało, ani PowerShell (nawet gdy obie powłoki działają jako administrator).

Jest to bardzo dziwne, ponieważ taskkillrzekomo jest lepszą wersją api-i-robi-więcej tskill.

W moim przypadku, aby zabić wszystkie wystąpienia pewnego zadania, którego użyłem FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i


1
To zadziałało dla mnie, podczas gdy żaden z pozostałych nie. Thx: D
jk1990

3
Nie działa dla mnie. MamEnd Process failed for 10576:Access is denied.
twasbrillig

Tak samo dzieje się ze mną. Czego nie mogę zrozumieć, to dlaczego? taskkill ma być tym samym, co tskill [raczej lepiej, w dokumentacji itp.]. Czy ktoś mógłby odpowiedzieć?
dvlper

1
Wygląda na to, że nie ma umiejętności w systemie Windows 10
raffaem

Nie działa dla mnie, próbując usunąć proces Windows Defender, który wykorzystuje prawie 100% dostępu do dysku.
David Spector

3

Mam zamiar coś zasugerować, ponieważ ostatnio stanąłem przed tym samym problemem i próbowałem każdej możliwej rzeczy w odpowiedziach, ale nic nie działało. Otrzymywałem błędy takie jak

BŁĄD: Nie można zakończyć procesu z PID 23908. Przyczyna: nie ma uruchomionej instancji zadania.

za pomocą wiersza poleceń. Powłoka mocy też nie była pomocna. po prostu wykonałby polecenia i nie odpowiedziałby, a proces nadal działał.

Dopóki nie zdecydowałem się usunąć skojarzonego z nim pliku „.exe”. Ponieważ plik był aktywny, system Windows nie pozwalał na jego usunięcie, ale w tym oknie ostrzegawczym podał mi nazwę procesu, który wstrzymywał zadanie, które chciałem zabić. Udało mi się zabić oryginalne zadanie, a tym samym błędny proces.

Zdecydowanie warto spróbować, jeśli żadne z rozwiązań się nie sprawdzi.


3

Otrzymałem następujące wyniki z 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.

To, co działało dla mnie, to 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.

Możesz pobrać pskillz aktualnej strony sysinternal


2
Nie działa dla mnie. Dostałem:Unable to kill process 10576: Access is denied.
twasbrillig

1
Być może będziesz musiał to zrobić z poziomu powłoki poleceń z uprawnieniami administratora?
BenV136

2

Niektóre pliki exe zależą od niektórych usług,

Musisz więc znaleźć odpowiednią usługę i najpierw się zatrzymać.


4
jakieś wskazówki, jak to rozwiązać? W Taskmanager nie pokazuje żadnej usługi odpowiadającej devenv.exe. W tej chwili próbuję odtworzyć problem, kiedy to zrobię, użyję eksploratora procesów, aby zagłębić się w usługi, które mogą go przechowywać.
dushyantp

2

Ten sam problem przytrafił mi się w VirtualBox w odniesieniu do procesów Javy.

W moim przypadku było to spowodowane błędem w łatce Windows Update KB4338818 (Windows 7 x64).

Rozwiązałem to, wykonując następujące czynności:

  • Odinstaluj poprawkę Windows Update KB4338818
  • Zainstaluj poprawkę Windows Update KB4338821

2

U mnie działa jako administrator:

1. szukaj cmdw systemie Windows

2. kliknij prawym przyciskiem myszy cmdopcję „Uruchom jako administrator”

3.netstat -ano | findstr :8080

4.taskkill/pid (your number) /F

Mój wynik


Jeśli pojawi się błąd, taki jak: „nestat” nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy. może być konieczne uruchomienie polecenia jako C: \ Windows \ system32 \ netstat.exe zamiast po prostu nestat
sk8asd123

2

Dla mnie sposób, w jaki to zadziałało, polega na tym, że muszę zabić proces rodzica. Wymyśl proces rodzica i zabij go

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

1

Mam problem z debugowanymi procesami z gdb w Code :: Blocks. Gdy tylko zawiesza się podczas przypadkowego wchodzenia w instrukcje spoza zakresu twoich źródeł (jako biblioteki bez źródeł lub funkcji systemowych), nie możesz zakończyć debugowania ani z Code :: Blocks, ani z Task-Managera.

Myślę, że to błąd w implementacji gdb w Code :: Blocks, ale mógłby też być w gdb;)

Moje rozwiązanie:

taskkill /F /IM process.exe /T

Pokazuje PID procesu macierzystego. Teraz zabij rodzica:

taskkill /PID yyyy

Obie odeszły.

Gotowe.


1
Możliwe, że nadrzędny PID nie istnieje.
user1133275

Proszę sprecyzować, czym są bloki gdb i Code :: Blocks;)
niebieskawe

3
Ostrzeżenie: jeśli proces nadrzędny to services.exezabicie rodzica, może to spowodować BSOD
MM

1

jeśli taskkill /F /T /PID <pid>nie działa. Spróbuj otworzyć terminal ur Run as Administrator.

Wyszukaj cmdw menu Twojego okna i kliknij prawym przyciskiem myszy Run as Administrator, a następnie ponownie uruchom polecenie. To zadziałało dla mnie.


1

Jeśli pobierzesz darmowy pakiet sysinternals, będzie on zawierał aplikację pskill.exe, która działa dobrze w przypadku tego typu zadań: pskill.exe "nazwa_procesu" Działa na tych procesach nawet bez użycia opcji -t.


1

Wykonałem następujące czynności na podwyższonej powłoce PowerShell:

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

polecenie Wyjście:

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

Parametry wyjściowe:

instance of __PARAMETERS
{ReturnValue = 0; };

Mam trochę informacji o składni na: https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb


To faktycznie zadziałało, należy przyjąć odpowiedź. Dzięki
John Newman,

0

NirCmd firmy NirSoft wykonał za mnie pracę:

nircmd killprocess "process name.exe"

Strona podręcznika killprocess jest tutaj .


0

Napotkałem ten sam problem, w którym uruchomiłem aplikację węzła na porcie 3000 i nie została ona poprawnie zamknięta, a proces działał nawet po ponownym uruchomieniu.

Żadne z poleceń taskkill ani PowerShell działających w trybie administratora nie działało dla mnie.

Użyłem MS Process Expoler> Właściwości> Obraz> Bieżący katalog (który miał być katalogiem mojego projektu).

Wreszcie musiałem zrestartować komputer w SafeMode, zmienić nazwę folderu projektu i ponownie uruchomić. Procesy węzła, które zużywały port 3000, zabijały się.


0

Miałem dokładnie ten sam problem, znalazłem tę poprawkę w innej witrynie: powershell.exe "Get-Process processname | Stop-Process" zadziałało dla mnie i byłem na tej samej łodzi, na której musiałem ponownie uruchomić, / T nie działał .


0

Jak wspomniał Franciszek, z powodu niektórych procesów nie można zakończyć

„nieprzetworzone żądania we / wy”

Z mojego doświadczenia wynika, że ​​miałem do czynienia z błędnym sterownikiem graficznym , który powodował awarię mojej gry i nie mógł jej zamknąć, ponieważ w ostateczności wyłączyłem sterownik graficzny i proces ostatecznie zniknął.

Jeśli Twoja aplikacja czeka na zasób ze sterownika, taki jak Wi-Fi lub grafika, spróbuj wyłączyć je w menedżerze urządzeń , musisz trochę zagłębić się, aby zobaczyć, gdzie się zawiesiły.

Nie jest to oczywiście zalecane, ale czasami nie masz już nic do stracenia.


0

Miałem ten sam problem i jak wielu innych tutaj powiedziało, żadne z normalnych poleceń zabijania nie działało. Mój plik powodujący problem był plikiem wykonywalnym uruchamianym z udziału sieciowego przez użytkownika na serwerze usług pulpitu zdalnego. W przypadku wielu współdzielonych użytkowników ponowne uruchomienie w ciągu dnia nie jest łatwe. Nawet gdy użytkownik wylogował się, exe nadal był wymieniony w Menedżerze zadań. Wysłałem na serwer, na którym folder był udostępniony, i z Zarządzanie komputerem -> Sesje znalazły użytkownika z otwartą sesją z tego serwera RDP, mimo że był wylogowany. Kliknij prawym przyciskiem myszy -> Zamknij sesję i blokada plików została zwolniona.

Nie wiem, dlaczego nie mogłem zakończyć zadania. Komunikat o błędzie, który początkowo otrzymywałem podczas próby usunięcia pliku, brzmiał: „Nie można ukończyć akcji, ponieważ plik jest otwarty w systemie”

Mam nadzieję, że to pomoże komuś innemu.


0

W moim przypadku żadne z rozwiązań tutaj nie zadziałało. W końcu stwierdziłem, że program, o którym mowa, zawiesił się podczas próby sondowania interfejsów audio USB. Odłączyłem więc DAC USB, który podłączyłem i ku mojemu zdziwieniu aplikacja natychmiast zamknęła się. Odpowiedź Francisa wspomina, że ​​może to być wynikiem „nieprzetworzonych żądań we / wy, które nie zostały prawidłowo obsłużone (przez sterownik urządzenia, do którego prawdopodobnie uzyskał dostęp twój program)”, co może wyjaśniać, dlaczego to naprawiło.

Przypuszczam, że to naprawdę zależy od tego, co program robił, gdy zawiesił się, ale jeśli żadne z innych rozwiązań nie działa, spróbuj odłączyć wszystkie urządzenia USB, aby sprawdzić, czy jedno z nich może być przyczyną.



-8
  1. otwarty menedżer zadań
  2. wybierz zakładkę usług
  3. wybierz proces (devenv.exe), który chcesz zabić i kliknij przycisk usług
  4. bezpośrednio w procesie, wybierz właściwości i wyłącz je ...
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.