Застрял процесс, не может быть прекращено

1347
Nick Tritsis

Я работал над упражнением на c с кодовыми блоками. Когда я закончил, я скомпилировал и запустил его.

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

Сначала я завершил процессы (cmd exerc1), но кодовые блоки продолжали вести себя так же, как и раньше.

Я немного погуглил и узнал о проводнике процессов и хакере процессов. Я попробовал их обоих, но безуспешно. Я застрял с 2 процессами в проводнике процессов, не могу завершить, приостановить или перезапустить их с тем, что я пробовал до сих пор.

Кроме того, что касается кодовых блоков, когда я пытаюсь что-либо сделать с помощью exerc1.c (файл застрял), он компилируется с ошибкой «Permission Denied» и никогда не запускается должным образом, помогите, пожалуйста :)

2
Что вы подразумеваете под "не может быть прекращено"? что вы получите, если попытаетесь убить его с помощью диспетчера задач? David Dai 8 лет назад 0
@DavidDai я получаю сообщение об ошибке «Отказано в доступе» Nick Tritsis 8 лет назад 0

1 ответ на вопрос

2
рüффп

Это напоминает мне, когда я программировал Windows Services, и их также было невозможно остановить с помощью диспетчера задач Windows.

Для решения этой проблемы нам нужно было найти код под названием EnableDebugPrivAndRun.cpp, скомпилировать его в исполняемый файл и затем запустить диспетчер задач с:

C:\>EnableDebugPrivAndRun.exe TaskMgr.exe 

При этом диспетчер задач смог убить любой процесс. Помните, что даже основные процессы Windows могут быть уничтожены (например, lsass.exe в Windows 2000), и вы просто получите зависшую машину).

Вы все еще можете найти код и полную статью в этой статье Microsoft . Код доступен, когда вы нажимаете на ссылку Figure 3.

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

ОБНОВЛЕНИЕ: Очевидно, что некоторые другие пользователи нашли решение в этом вопросе SuperUser, и я также нашел Средства отладки Windows, которые содержат killкоманду, которая должна выполнить эту работу.

Выписка с сайта MSDN:

Инструменты отладки для Windows (WinDbg, KD, CDB, NTSD)

3 способа получить средства отладки для Windows:

  • В составе WDK Установите Microsoft Visual Studio, а затем установите комплект драйверов Windows (WDK). Средства отладки для Windows включены в WDK.

  • Как часть Windows SDK Установите пакет средств разработки программного обеспечения Windows> (SDK). Средства отладки для Windows включены в Windows SDK.

  • Как автономный набор инструментов. Если вы хотите загрузить только средства отладки для Windows, установите Windows SDK и во время установки установите флажок «Средства отладки для Windows» и снимите все остальные флажки.

Набор инструментов отладки доступен здесь .

эй, я получил код с рисунка 3 и скомпилировал его в исполняемый файл. Nick Tritsis 8 лет назад 0
Запустил cmd:> рабочий стол CD (где я поместил .exe)> EnableDebugPrivAndRun.exe (с TaskMgr.exe и затем procxp.exe), но ни один из них не сработал, так что я думаю, что EnableDebugPrivAndRun устарел для Windows 10, как вы сказали: - / Обидно, статья была довольно хорошей и была в значительной степени после моей проблемы. Какие-нибудь подсказки, где я могу найти что-то подобное для современной версии Windows? Nick Tritsis 8 лет назад 0
Я нашел другую альтернативу для Windows (начиная с версии Win7). Быстрее всего, вероятно, загрузить Windows SDK и установить только средства отладки (последний вариант описан в моем обновлении). Тогда у вас должна быть программа kill.exe, чтобы убить ваше приложение. рüффп 8 лет назад 0
Хорошо, звучит как план! Практически все, что новее, чем win7, совместимо! Я также уточню у своего учителя (я направляюсь в лабораторию, в которой проходит мой курс c) на предмет возможного альтернативного решения, видел ли он что-то похожее за годы своей службы. В противном случае я пойду на SDK, когда я вернусь домой. Спасибо за ваше время, приятель :) Nick Tritsis 8 лет назад 0
Кроме того, я наткнулся на [вопрос суперпользователя] (http://superuser.com/questions/109010/kill-a-process-which-says-access-denied), который вы указали заранее. Основной ответ предлагает дать процессу хакеру попробовать ... Не получилось. Я бы не стал беспокоить вас без какого-либо собственного исследования! Nick Tritsis 8 лет назад 0
Это потрясающе, спасибо. Вот ссылка SDK для Windows 10: https://developer.microsoft.com/windows/downloads/windows-10-sdk Martin Hansen 5 лет назад 0
Я также загрузил kill.exe как отдельный файл, поэтому вам не нужно загружать 500 МБ SDK. Вы можете проверить целостность файла с помощью VirusTotal. https://drive.google.com/open?id=1nwZjRHG4vSrLGGpVATg7c_M_M7XyBoiD Martin Hansen 5 лет назад 0