Как я могу убить неубиваемый процесс?


13

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

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

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

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


Это одна из причин, по которой я перешел на Linux. Хотя я столкнулся с этой проблемой в Win XP, похоже, что с тех пор она не изменилась.
Петерсон

4
Согласно samba.2283325.n4.nabble.com/… В Linux точно такая же ситуация - процессы, ожидающие в ядре, не могут быть уничтожены. Это одна из причин, по которой я перешел на Windows.
ta.speot.is

В статье Марка Руссиновича «Неубиваемые процессы» говорится, что вы можете использовать инструмент отладки локального ядра, чтобы выяснить, почему процесс неубиваемый. Статья дает вам инструкции о том, что делать. Вам понадобятся бесплатные инструменты отладки для Windows .
незабываемыйПоддержкаMonica

Ответы:


12

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

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

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

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


2
Да, это, безусловно, самая распространенная причина такого рода вещей. Большинство неубиваемых процессов, которые я видел, были связаны с CD-приводом (например EAC.EXE) или с ТВ-тюнером / видеокартой (например ATIMMC.EXE). В обоих случаях это сводится к ошибке драйвера, и любой, кто изучил и выполнил работу драйвера, будет знать, как проблематичные вещи могут получить на этом уровне, и какие виды «странных» эффектов они могут иметь в пользовательской среде (по крайней мере, BSOD окончательно и ясно).
Synetech

1
@ Synetech Inc. - Все проблемы, которые у меня были, были связаны с диском, или в программном обеспечении, которое вообще не нуждалось в драйвере (я понятия не имею, почему они решили работать в ядре). Я не думаю, что вы можете сделать какие-либо общие заявления о том, какое программное обеспечение чаще всего имеет неубиваемые сбои.
Фальшивое имя

3

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

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

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

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


2
Терминатор был удален из Process Hacker и перемещен в плагин. Об этом была ветка форума . Сопровождающий заявил: «Терминатор бесполезен ... потому что он не более эффективен, чем обычные функции завершения». Некоторые люди ответили и не согласились.
незабываемыйПоддержкаMonica

Позже dmex переместил Терминатор в плагин. Исходный код здесь . На момент написания статьи, нет двоичного еще . Когда бинарный файл будет выпущен, он будет опубликован на странице релизов dmex .
незабываемыйПоддержкаMonica

1
Я только что подал запрос на добавление функции , запрашивая скомпилированную версию Terminator. На данный момент, я думаю, вы можете использовать любую версию Process Hacker старше 2.39. Например, вы можете использовать версию 2.38, которая доступна здесь .
незабываемыйПоддержкаMonica

Существует также вариант, что отладчик был подключен и причина не убивать это. Разное обнаруживает это и добавляет отладочный отладчик
Ghita

2

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

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

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


0

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

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


0

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

taskkill / F yourprogram.exe

ИЛИ

taskkill / F / im yourprogram.exe

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


1
Добро пожаловать в Супер пользователя! Хотя это может помочь решить проблему, это не объясняет, почему и / или как она решает проблему. Предоставление этого дополнительного контекста значительно улучшило бы его долгосрочную образовательную ценность. Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение, в том числе описание параметров и применимых ограничений и предположений. Благодарю.
fixer1234

ОШИБКА: процесс "AutoHotkeyU64_UIA.exe" с PID 16872 не может быть завершен. Причина: нет запущенного экземпляра задачи.
Шаян,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.