13

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

Невозможно подключиться к процессу сбоя. Запрошенная операция не поддерживается.

Такое иногда случается с VS2008 и некоторыми другими программами.

Как прекратить это?

5 ответов5

12

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

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

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

(В основном, от автора) http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

2

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

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

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

2

У Process Hacker есть команда Разное → Терминатор, которая попробует несколько различных методов, чтобы убить ваш процесс:

провал на большинстве попыток

полные описания

В моих тестах все, что это делало, это блокировало Process Hacker и превращало его в неубиваемый процесс, но, возможно, в некоторых случаях это сработает.

1

запустите CMD от имени администратора и используйте taskkill, чтобы отключить его. Пример:

taskkill /F yourprogram.exe

ИЛИ ЖЕ

taskkill /F /im yourprogram.exe

Если вы застряли в синтаксисе CMD taskkill, введите taskkill /?

0

Вероятно, используемые вами программы были разработаны до Windows Vista/7 и несовместимы с внесенными изменениями.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .