Действительно убивает процесс В Windows



Иногда программа на машине Windows сходит с ума и просто зависает. Поэтому я вызову диспетчер задач и нажму кнопку "Завершить процесс" для него. Однако это не всегда работает; если я попробую это достаточно раз, то он обычно умрет в конце концов, но я действительно хотел бы иметь возможность просто убить его немедленно. На Linux я мог бы просто kill -9 чтобы гарантировать, что процесс будет умереть.



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



есть

497   8  

8 ответов:

"завершить процесс" на вкладке Процессы вызывает TerminateProcess который является наиболее конечным способом Windows знает, чтобы убить процесс.

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

взгляните на этот блог-запись из wayback, когда: http://blogs.technet.com/markrussinovich/archive/2005/08/17/unkillable-processes.aspx

системы на базе Unix, такие как Linux, также имеют эту проблему, когда процессы могут выжить kill -9 если они находятся в так называемом "непрерывном сне" (показанном top и ps как состояние D) в этот момент процессы спят так хорошо, что они не могут обрабатывать входящие сигналы (что и есть kill делает - посылает сигналы).

нормально, непрерывный сон должен не долго, но как под Windows, сломанные драйверы или сломанные программы userpace (vfork без exec) может в конечном итоге спать в D навсегда.

taskkill /im myprocess.exe /f

"/f "означает"сила". Если вы знаете PID, то вы можете указать это, как в:

taskkill /pid 1234 /f

много других вариантов возможны, просто введите taskkill /? для всех них. Опция "/t " убивает процесс и любые дочерние процессы; это может быть полезно для вас.

Хакер Процесса есть множество способов убить процесс.

(щелкните правой кнопкой мыши процесс, затем перейдите в раздел Разное->Терминатор.)

получить Process explorer от sysinternals (теперь Microsoft)

Проводник Процессов - Windows Sysinternals / Microsoft Docs

JosepStyons прав. Открыть cmd.exe и запустите

taskkill /im processname.exe /f

Если есть ошибки, говоря:

ошибка: процесс "процесс.exe " с PID 1234 не может быть завершенный. Причина: Доступ запрещен.

затем попробуйте запустить cmd.exe как администратор.

один трюк, который хорошо работает, чтобы прикрепить отладчик, а затем выйти из отладчика.

на XP или Windows 2003 вы можете сделать это с помощью ntsd, который поставляется из коробки:

ntsd -pn myapp.exe

ntsd откроет новое окно. Просто введите " q " в окне, чтобы выйти из отладчика и вынуть процесс.

Я знаю, что это работает, даже когда диспетчер задач не может убить процесс.

к сожалению ntsd был удален из Vista, и вы должны установите (бесплатно)debbugging tools for windows чтобы получить подходящий отладчик.

установите команду AT для запуска диспетчера задач или проводника процессов в качестве системы.

AT 12:34 /interactive "C:/procexp.exe"

Если бы Process explorer был в вашем корневом диске C, то это открыло бы его как систему, и вы могли бы убить любой процесс, не получая никаких ошибок отказа в доступе. Установите это на минуту в будущем, а затем он появится для вас.

когда ntsd доступ запрещен, попробуйте:

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

ZeroWave также является простой в использовании программой из-за его простой установки и его очень дружественный графический интерфейс.

ZeroWave имеет три режима завершения и с" безумным " режимом может завершить любой процесс, который может работать на Windows.

кажется, что ZeroWave не может убить АВП.exe

Comments

    Ничего не найдено.