Taskkill / f не убивает процесс

140

Когда я запускаю экспериментальный экземпляр VS из VS для отладки и прекращаю отладку (иногда непосредственно из родительского VS), остается запущенный процесс devenv.exe, который я не могу уничтожить. Это касается многих моих библиотек.

Поскольку я вошел на эту 64-битную машину Win7 как администратор, я ожидал, что смогу убить любой процесс, который захочу.

I tried (from Administrator command prompt):

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

Никто не возвращает никаких ошибок и TASKKILLи PSKILLвозвращает сообщения об успешном завершении / убийстве процесса. Но devenv.exe все еще работает, он не запускается заново, так как PIDостается постоянным. Он исчезает только при перезапуске системы, что не является хорошим решением.

Заметка. LockHunter показывает, что у devenv есть блокировка. И это не может разблокировать это.

Process Monitor показывает, что devenv находится в каком-то цикле «Профилирование процесса»

Приведенный выше снимок экрана представляет собой вывод Process Monitor, показывающий, что devenv находится в каком-то цикле «Профилирование процесса» (щелкните правой кнопкой мыши по нему и щелкните открытое изображение на новой вкладке, чтобы увидеть его правильно).

Есть идеи, как убить такой процесс в Windows?

dushyantp
источник
Не знаю, почему вы не получаете сообщение об ошибке, но для проверки одного: вы вызывали эти команды из командной строки с повышенными правами? В противном случае команды не будут выполняться с правами администратора, даже если они есть в вашей учетной записи. (Это не должно позволить им вернуть успех, когда они явно потерпели неудачу;))
SvenS
1
да, все команды были запущены из командной строки администратора.
Душанпт
3
Этот вопрос больше подходит для superuser.com . Да, у них есть довольно хорошие объяснения там. Этот помог мне.
Ярекчек

Ответы:

81

Вы также должны убить дочерний процесс, если он возник, чтобы успешно завершить ваш процесс

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process
ааа
источник
25
Он печатает два сообщения об успехе в моем случае, но процесс все еще там. Какого черта?
CodeManX
3
если бы это было так просто :) нет, это не поможет. Я думаю, что его проблема в том, что неубиваемый процесс находится в каком-то цикле (сокет, ввод / вывод, каналы ...), где основным процессом является системный процесс, и его уничтожение сделает систему нестабильной. В этом случае я бы рекомендовал сначала понять, в каком цикле находится процесс. Затем, если этот цикл является сетевым обменом с другой конечной точкой, просто отключите сетевой кабель или отключите уже установленное соединение.
75
Я получаю, There is no running instance of the task что процесс действительно не хочет умирать!
демонголем
1
все еще помогите мне сегодня, хотя я должен убить и «ребенка от ребенка»: taskkill / f / T / PID 4172 ==> ОШИБКА: процесс с PID 4172 (дочерний процесс с PID 4724) не может быть завершен. ==> taskkill / f / T / PID 4724 ==> Готово
Hoàng Long
1
Yay для упомянутого /Tвыключателя!
kayleeFrye_onDeck
34

Методы taskkill и powershell (kill) у меня не сработали; он все еще сказал «Доступ запрещен».

Мне повезло больше с этим:

wmic process where "name='myprocessname.exe'" delete
twasbrillig
источник
6
ОШИБКА: Описание = Неверный запрос
user1133275
51
Окна-10. Также: ERROR: Description = Access denied(с помощью консоли администратора между прочим)
FractalSpace
1
Спасибо! Это сработало как заклинание для моего застрявшего нпм
Эдуардо Элиас Сале
1
Удивительно, спасибо большое. Потратил час на убийство, прежде чем я нашел это
Дерек MC
2
Это все еще не работает в моем случае. Застрял Visual Studio в процессах, запустил команду и выдает команду Удаление экземпляра \\ MyMachine \ ROOT \ CIMV2: Win32_Process.Handle = "6420", удаление экземпляра прошло успешно. Но через 5 минут я все еще вижу процесс VS devenv.exe в списке диспетчера задач. Я думаю, только перезагрузка - единственное решение для меня.
wctiger
30

Просто была такая же проблема на Windows Server 2008 R2, и ничего не помогло, не TaskManager или TaskKill. Но Windows PowerShell запускается как администратор работал с "kill -id PID"

Gnampf
источник
3
Это сработало для меня ... хотя казалось, что до того, как процесс фактически закончился, задержка составила около 30 секунд, поэтому сначала это казалось неудачным. В моем случае это был процесс, который процедурно создавался другим приложением, когда в системе было мало ресурсов. Process Explorer, kill process tree и некоторые другие вещи не работали, но это помогло.
Дж. Полдинг
4
Не работает для меня, дал мне ошибку неспособный убить процесс и т.д. и т.п.
rboy
@rboy. Я знаю, что он старый, но на тот случай, если кто-то другой увидит, что он делает то, что сделал я. Откройте powershell от имени администратора и запустите его. Сначала я запустил его не как администратор, и мне сказали, что я не могу этого сделать. Итак, я запустил его как администратор, и он работал.
Крис Джонс
Это работало для меня на Windows 10 с плохо работающей службой Windows. Уже пробовал CMD, в этом случае PowerShell - подходящий инструмент
ThetaSinner
5
Не повезло мне даже после ожидания более 2-3 минут. Ни одна из команд не работает для меня в настоящее время
Тарун Гупта
28

Перезагрузка - единственное решение, которое работало для меня (пока).

Всегда превосходный Марк Руссонович имеет хорошее объяснение неубиваемым процессам.

Подводя итог, вполне возможно, что это связано с необработанными запросами ввода-вывода, которые не были обработаны должным образом (драйвером устройства, к которому ваша программа, возможно, обращалась)

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

Фрэнсис
источник
1
Что я сделал, так это выключил и перезапустил его.
Гелли Энн
10

Я знаю, что уже поздно, но taskkill /im devenv.exe /t /fдолжно работать. /tубивает дочерние процессы тоже.

nephi12
источник
12
Это не похоже на работу для меня. Он говорит, что это успешно, но процесс все еще обнаруживается.
Скотт Уитлок
2
Я тоже сталкиваюсь с подобной проблемой, но с Microsoft ftp service, говорит, что прекращено, но продолжает работать, не могу понять
rboy
1
Если вместо того, чтобы /IM devenv.exeиспользовать, /PID 17888то ошибка в основном говорит о том, что 17888 - это ребенок 17880, а 17880 не работает и поэтому не может быть убит.
Джесси Чисхолм
это работает, но убедитесь, что вы используете cmd из режима администратора.
Каран
У меня не получилось, пытаясь удалить процесс Защитника Windows, который использует почти 100% доступа к диску ..
Дэвид Спектор
7

В моем случае, после нескольких дней борьбы с этой проблемой (это происходило с процессами VirtualBox и µTorrent), я обнаружил, что это было вызвано проблемой сетевого драйвера, спровоцированной обновлением Windows Update KB4338818 (Windows 7 x64). После удаления этого патча все вернулось на круги своя. Я просто подумал, что это может быть полезно для других.

Danita
источник
Как вы узнали, что обновление вызвало это? Я думаю, что никогда бы не открыл это. ^^ '
дас Кекс
1
Я понял, что единственное, что изменилось на моей машине до того, как проблема стала очевидной, это обновления, поэтому я проверил, какое было последнее обновление, и прочитал примечания к выпуску. Это показалось подозрительным, и я откатился назад, чтобы посмотреть, была ли проблема решена. Затем я прочитал на некоторых форумах Apache, не помню, какое это обновление доставило им проблемы. Кстати: последнее обновление Windows от 2018 / август 10 устраняет проблему с KB4338818, поэтому ее можно установить снова.
Данита
6

Я мог решить свою проблему с этой проблемой, убив explorer.exe, который, в свою очередь, зависел от процесса, который я хотел убить. Я думаю, это также может произойти, если процессы открывают интерфейсы через хук, который может быть заблокирован.

seansilver
источник
1
Я попытался убить и перезапустить explorer.exe, и это не сработало.
Скотт Уитлок
Когда я сделал это, taskkill /IM "process_name" /T /Fчасть ответа была (child process of PID xxxx)такой : я проверил этот PID, и это был explorer.exe, перезапуск решил мою проблему.
Факундо Коломбье
5

Я видел это несколько раз, и моим единственным решением была перезагрузка.

Вы можете попробовать использовать PowerShell: Get-Process devenv | убийство

Но если другие методы потерпели неудачу, это, вероятно, тоже будет. :-(

Томас Ли
источник
К сожалению, да! Для меня это тоже так. Вы когда-нибудь получали какое-либо решение?
manocha_ak
У меня не работает на win10: PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip | убить PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> echo $? Истинный PS D: \ work \ Projects \ libtiff.net_bin-2.4.560.0> Get-Process NSPRip обрабатывает NPM (K) PM (K) WS (K) Идентификатор ЦП (ов) SI Имя процесса ------- - ---- ----- ----- ------ - - ----------- 0 0 56 20 0,00 41236 1 NSPRip
zhaorufei
4

Родной tskill <pid>(или tskill.exe <pid>) у меня работал на Windows 10, где не было другого родного ответа.

В моем случае у меня было несколько процессов chrome.exe, для которых работала «Конечная задача» диспетчера задач, но не работала taskkill /F /T /PID <pid>ни PowerShell kill -id <pid>(даже если обе оболочки запускались с правами администратора).

Это очень странно, так как taskkillпредполагается, что это версия с лучшими характеристиками tskill.

В моем случае, чтобы убить все экземпляры определенной задачи, которую я использовал FOR /F "usebackq tokens=2 skip=2" %i IN (`TASKLIST /FI "IMAGENAME eq name_of_task.exe"`) DO tskill %i

Zig
источник
1
Это сработало для меня, когда никто из остальных не сделал. Спасибо: D
jk1990
3
Не работал для меня ПолучилEnd Process failed for 10576:Access is denied.
twasbrillig
Случилось то же самое для меня. Что я не могу понять, почему? taskkill должен быть таким же, как tskill [скорее, в документации и т. д.]. Если кто-то может ответить?
dvlper
1
Кажется, в Windows 10 нет цкилла
raffaem
У меня не получилось, пытаясь удалить процесс Защитника Windows, который использует почти 100% доступа к диску ..
Дэвид Спектор
3

Я собираюсь предложить что-то здесь, потому что я недавно столкнулся с той же проблемой, и я попробовал все возможные вещи в ответах, но ничего не получалось. Я получаю ошибки как

ОШИБКА: процесс с PID 23908 не может быть прерван. Причина: нет запущенного экземпляра задачи.

используя командную строку. Power shell тоже не помог. он просто будет выполнять команды, а ответ не будет запущен.

Пока я не решил удалить связанный файл .exe. Поскольку файл был активным, окна не позволяли удалить, но в этом окне предупреждения он дал мне имя процесса, который удерживал задачу, которую я хотел убить. Я смог убить исходное задание и, следовательно, ошибочный процесс.

Это определенно стоит попробовать, если ни одно из решений не сработает.

Astroynamicist
источник
3

Я получил следующие результаты с 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.

То, что работало для меня, было sysinternal's 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.

Вы можете получить pskillс живого сайта sysinternal

Филипп Нган
источник
2
Не работал для меня Получил:Unable to kill process 10576: Access is denied.
twasbrillig
1
Вам может понадобиться сделать это из командной оболочки с правами администратора?
BenV136
2

Некоторые из файлов Exe зависят от некоторых служб,

Так что вам нужно найти соответствующую услугу и остановиться в первую очередь.

Гириш
источник
4
какие-либо советы о том, как это решить? На TaskManager он не показывает ни одного сервиса, соответствующего devenv.exe. Сейчас я пытаюсь воссоздать проблему, после этого я использую Process Explorer для поиска сервисов, которые могут его удерживать.
Душанп
2

Та же проблема произошла со мной в VirtualBox в отношении процессов Java.

В моем случае это было связано с ошибкой в ​​обновлении Windows Update KB4338818 (Windows 7 x64).

Я решил это, сделав следующее:

  • Удаление обновления Windows Update KB4338818
  • Установите обновление Windows Update KB4338821
Филипп ГРАНЕ
источник
2

Запуск в качестве администратора работает для меня:

1. поиск cmdв окнах

2. щелкните правой кнопкой мыши и cmdвыберите «Запуск от имени администратора».

3.netstat -ano | findstr :8080

4.taskkill/pid (your number) /F

Мой результат

Цин Юань
источник
Если вы получаете сообщение об ошибке, например: «nestat» не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл. вам может потребоваться запустить команду как C: \ Windows \ system32 \ netstat.exe вместо просто
nestat
2

Для меня способ, которым это работало, - я должен убить родительский процесс. Разберись с родительским процессом и убей его

taskkill /IM "parent_process_name.exe" /T /F
Shahazan
источник
1

У меня есть проблема с отлаженными процессами с GDB в Code :: Blocks. Как только он зависает, случайно входя в инструкции вне области ваших источников (как библиотеки без источников или системных функций), вы не можете выйти из отладки ни из Code :: Blocks, ни из Task-Manager.

Я думаю, что это ошибка в реализации GDB в Code :: Blocks, но также может быть в GDB;)

Мое решение:

taskkill /F /IM process.exe /T

Это показывает PID родительского процесса. Теперь убейте родителя:

taskkill /PID yyyy

Оба ушли.

Готово.

KOLP
источник
1
Возможно, родительский PID не существует.
user1133275
Пожалуйста, укажите, что такое gdb и Code :: Blocks;)
голубоватое
3
Предупреждение: если родительский процесс services.exeубивает родительский процесс, это может привести к BSOD
MM
1

если taskkill /F /T /PID <pid>не работает. Попробуйте открыть терминал через Run as Administrator.

cmdВыполните поиск в меню Windows и щелкните правой кнопкой мыши Run as Administrator, затем снова введите команду. Это сработало для меня.

Кевин Ли
источник
1

Если вы загружаете бесплатный пакет sysinternals, у него есть приложение pskill.exe, которое хорошо работает для задач следующих типов: pskill.exe "имя_процесса". Оно работает с этими процессами даже без использования опции -t.

BenV136
источник
1

Я сделал следующее на повышенном PowerShell:

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

Вывод команды:

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

Выходные параметры:

instance of __PARAMETERS
{ReturnValue = 0; };

Я получил некоторую информацию о синтаксисе на: https://community.spiceworks.com/topic/871561-wmic-error-like-invalid-alias-verb

Lakoroll
источник
Это действительно сработало, должен быть принят ответ. Спасибо
Джон Ньюман
0

NirSmd от NirSoft сделал всю работу за меня:

nircmd killprocess "process name.exe"

Страница руководства killprocess находится здесь .

Saxtus
источник
0

Я столкнулся с той же проблемой, когда запустил приложение узла в порту 3000, и оно не закрылось правильно, и процесс продолжал работать даже после перезапуска.

Ни одна из команд taskkill или powershell, работающих в режиме администратора, не работала для меня.

Я использовал MS Process Expoler> Свойства> Изображение> Текущий каталог (который должен был быть моим каталогом проекта).

Наконец мне пришлось перезагрузиться в SafeMode, переименовать папку проекта и перезапустить. Процессы узла, которые потребляли порт 3000, убили себя.

Ааман
источник
0

У меня была точно такая же проблема, я нашел это исправление на другом сайте: powershell.exe «Get-Process processname | Stop-Process», он работал для меня, и я был в той же лодке, где мне пришлось перезапустить, / T не будет работать ,

Джереми
источник
0

Как отметил Фрэнсис, некоторые процессы не могут быть прекращены из-за

«необработанные запросы ввода / вывода»

По своему опыту я имел дело с глючным графическим драйвером , который приводил к сбою игры и не мог ее закрыть, так как в крайнем случае я отключил графический драйвер, и процесс, наконец, прекратился.

Если ваше приложение ожидает ресурс от драйвера, такого как Wi-Fi или графический, попробуйте отключить их в диспетчере устройств , вам нужно немного покопаться, чтобы увидеть, где они зависли.

Это, конечно, не рекомендуется, но иногда вам больше нечего терять.

Масуд Р
источник
0

У меня была такая же проблема, и, как многие другие здесь говорили, ни одна из нормальных команд Kill не сработала. Моим проблемным файлом был исполняемый файл, который запускался из сетевой папки пользователем на сервере удаленных рабочих столов. С несколькими общими пользователями не легко перезапустить в течение рабочего дня. Даже когда пользователь вышел из exe-файла, он все еще был в диспетчере задач. Я отправил на сервер, где папка была открыта для общего доступа, и в меню «Управление компьютером» -> «Сеансы» нашел пользователя, у которого сеанс все еще открыт с этого сервера RDP, даже если он вышел из системы. Щелкните правой кнопкой мыши -> Закрыть сеанс, и блокировка файла была снята.

Бьет меня, почему я не мог покончить с таксом. Сообщение об ошибке, которое я получал при попытке удалить файл, было «Действие не может быть завершено, потому что файл открыт в системе»

Надеюсь, это поможет кому-то еще.

Дэвид Поллард
источник
0

В моем случае ни одно из решений здесь не сработало. В конце концов я обнаружил, что рассматриваемая программа была заморожена при попытке опроса аудиоинтерфейсов USB. Поэтому я отключил USB-ЦАП, к которому я подключился, и, к моему удивлению, приложение мгновенно завершило работу. В ответе Фрэнсиса упоминается, что это может быть результатом «необработанных запросов ввода-вывода, которые не были обработаны должным образом (драйвером устройства, к которому ваша программа, возможно, обратилась)», что может объяснить, почему это исправило это.

Я предполагаю, что это действительно зависит от того, что программа делала, когда она замерзла, но если ни одно из других решений не работает, попробуйте отключить все USB-устройства, чтобы увидеть, может ли одно из них быть причиной.

MacklinB
источник
-3

Запустите CMD, поскольку Admin исправит проблему

Ибтиссам Ибтиссама
источник
Пожалуйста, дайте более подробную информацию о том, что делать дальше после запуска CMD от имени администратора.
Сантьяго выходит SO
-8
  1. открыть диспетчер задач
  2. выберите вкладку услуги
  3. выберите процесс (devenv.exe), который вы хотите убить, и нажмите кнопку службы
  4. прямо в процессе, выберите свойства и отключите его ...
увеличить
источник