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

119

Когда я запускаю экспериментальный экземпляр VS от VS для отладки и прекращения отладки (иногда непосредственно из родительского VS), процесс zombile 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 есть замок. И он не может разблокировать его.

Изображение 644

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

Любые идеи о том, как убить такой процесс в Windows?

  • 0
    Не знаю, почему вы не получаете сообщение об ошибке, но для проверки одного: вы вызывали эти команды из командной строки с повышенными правами? В противном случае команды не будут выполняться с правами администратора, даже если они есть в вашей учетной записи. (Это не должно позволить им вернуть успех, когда они явно потерпели неудачу;))
  • 0
    да все команды были запущены из командной строки администратора.
Показать ещё 1 комментарий
Теги:
windows-7
process
windows-7-x64
devenv

27 ответов

68

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

taskkill /IM "process_name" /T /F

/T = kills child process

/F = forceful termination of your process
  • 17
    Он печатает два сообщения об успехе в моем случае, но процесс все еще там. Что за черт?
  • 1
    заказ не правильный
Показать ещё 4 комментария
26

Просто была проблема с Windows Server 2008 R2, и ничего не помогло, а не taskmanager или taskkill. Но, windows powershell запускается, когда администратор работал с "kill -id pid"

  • 3
    Это сработало для меня ... хотя до того, как процесс фактически прекратился, казалось, что произошла задержка примерно в 30 секунд, поэтому сначала это казалось неудачным. В моем случае это был процесс, который процедурно создавался другим приложением, когда в системе было мало ресурсов. Process Explorer, kill process tree и некоторые другие вещи не работали, но это помогло.
  • 2
    Не работал для меня, дал мне ошибку, не в состоянии завершить процесс и т. Д.
Показать ещё 3 комментария
22

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

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

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

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

  • 0
    Что я сделал, так это выключил и перезапустил его.
18

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

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

wmic process where "name='myprocessname.exe'" delete
  • 5
    ОШИБКА: Описание = Неверный запрос
  • 21
    Окна-10. Также: ERROR: Description = Access denied (кстати, с помощью консоли администратора)
Показать ещё 7 комментариев
9

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

  • 9
    Это не похоже на работу для меня. Это говорит, что это успешно, но процесс все еще обнаруживается.
  • 2
    Я сталкиваюсь с аналогичной проблемой, но с Microsoft ftp-сервисом, говорит прерван, но продолжает работать, не могу понять,
Показать ещё 3 комментария
5

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

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

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

  • 1
    Я попытался убить и перезапустить explorer.exe, и это не сработало.
  • 0
    У меня сработало, когда powershell и taskkill не справились.
5

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

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

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

  • 0
    К сожалению, да! Для меня это тоже так. Вы когда-нибудь получали какое-либо решение?
  • 1
    Get-Process Erl | убить сработало для меня как шарм!
Показать ещё 1 комментарий
3

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

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

Это очень странно, поскольку taskkill считается более подходящей версией tskill.

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

  • 1
    Это сработало для меня, когда ни один из других не сделал. Спасибо: D
  • 0
    Не работал для меня Не End Process failed for 10576:Access is denied.
Показать ещё 1 комментарий
2

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

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

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

  • Удалить обновление Windows Update KB4338818
  • Установите обновление для Windows Update KB4338821
2

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

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

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

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

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

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

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

2

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

Итак, вам нужно найти соответствующий сервис и остановиться сначала.

  • 4
    какие-либо советы о том, как это решить? На TaskManager он не показывает ни одного сервиса, соответствующего devenv.exe. Сейчас я пытаюсь воссоздать проблему, после того, как сделаю это, я использую Process Explorer, чтобы найти сервисы, которые могут его удерживать.
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

  • 0
    Это действительно сработало, должен быть принят ответ. Спасибо
1

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

1

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

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

1

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

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

Мое решение:

taskkill /F /IM process.exe /T

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

taskkill /PID yyyy

Оба ушли.

Готово.

  • 1
    Возможно, родительский PID не существует.
  • 0
    Пожалуйста, укажите, что такое gdb и Code :: Blocks;)
Показать ещё 1 комментарий
0

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

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

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

0

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

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

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

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

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

0

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

1. поиск cmd в windows

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

3. netstat -ano | findstr :8080 netstat -ano | findstr :8080

4. taskkill/pid (your number)/F

Изображение 7359

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

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

0

У меня была такая же проблема, попробуйте запустить cmd как "Запуск от имени администратора".

  • 0
    для офисного ПК :)
0

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

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

Я использовал MS Process Expoler > Properties > Image > Current directory (который должен был быть моим каталогом проектов).

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

0

NirSoft NirCmd выполнил эту работу для меня:

nircmd killprocess "process name.exe"

Страница управления killprocess здесь.

0

Ничего из этой страницы не помогло, Anvir Task Manager.

Но может случиться так, что мой процесс размораживается перед убийством, поэтому, пожалуйста, повысьте/уменьшите, если это поможет вам или нет.

-2

Reboot.

(если вам не нравится использовать Linux вместо этого)

нормальное убийство

taskkill /F /IM app.exe

может выйти из строя, и родитель не может существовать

taskkill /T /F /IM app.exe

и power-shell

kill -id 1234

может быть в равной степени неэффективным.

-6
  • открыть диспетчер задач
  • выберите вкладку услуг
  • выберите процесс (devenv.exe), который вы хотите убить, и нажмите кнопку службы
  • прямо в процессе, выберите свойства и отключите его...
  • 0
    Devenv.exe не отображается в списке служб.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню