Принудительное завершение зависшей службы Windows | Windows для системных администраторов

Принудительное завершение зависшей службы Windows

Думаю, большинство администраторов Windows, встречались с ситуациями, когда при попытке остановить (перезапустить) службу из графического интерфейса, она намертво зависает и висит в статусе Stopping. Никакими мерами из консоли управления службами остановить такую службу не удается, т.к. кнопки операций со службой становятся недоступными. Самый простой способ – перезагрузить сервер, но это не всегда допустимо. Рассмотрим альтернативный способ, позволяющий принудительно завершить зависшую службу или процесс без необходимости перезагрузки.

Служба зависла в статусе StoppingЕсли в течении 30 секунд после попытки остановки службы, она не останавливается, Windows выводит сообщение:

Не удалось остановить службу xxxxxxx Windows на локальном компьютере.
Ошибка 1053. Служба не ответила на запрос своевременно
Windows Could not stop the xxxxxx service on Local Computer
Error 1053: The service did not respond in a timely fashion

Наиболее простой способ завершить зависшую служу – воспользоваться утилитой taskkill. В первую очередь нужно определить PID (идентификатор процесса) нашей службы. В качестве примера возьмем службу Windows Update, ее системное имя wuauserv (имя можно посмотреть в свойствах службы в консоли services.msc).

Важно. Будьте внимательными. Принудительная отставка процесса критичных служб Windows может привести к BSOD или перезагрузке.

В командной строке с правами администратора (это важно, иначе будет ошибка access denied):
sc queryex wuauserv

В данном случае PID процесса — 816.

Чтобы принудительно завершить зависший процесс с PID 816:

taskkill /PID 816 /F

taskkill - принудительно завершить процесс службы

SUCCESS: The process with PID 816 has been terminated.

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

«Выстрел в голову» зависшей службы можно выполнить и более элегантно, не выполняя ручное определение PID процесса. В этом нам поможет PowerShell.

С помощью следующей команды можно получить список служб, находящихся в состоянии Stopping:

Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}

poweshell список служб в статусе stop pendingЗавершить процесс для всех найденных служб поможет командлет Stop-Process. Объединив обе операции в цикл, получим скрипт, автоматически завершающий все процессы подвисших служб в системе:

$Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
if ($Services) {
foreach ($service in $Services) {
try {
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
}
catch {
Write-Warning -Message " Error. Error details: $_.Exception.Message"
}
}
}
else {
Write-Output "No services with 'Stopping'.status"
}

powershell Stop Process

Еще записи по теме: Windows Server 2008
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 4

Оставить комментарий
  1. Adminny | 04.02.2016

    Как обычно всё проще:
    TASKKILL /F /FI «SERVICES eq wuauserv»

    Ответить
  2. user | 09.02.2016

    taskkill /F /FI «status eq not responding»

    Ответить
  3. vinrom | 08.03.2016

    нужно обратить внимание на то, что вышеописанное убьёт процесс, со всеми запущенными службами, а не только одну зависшую службу. Это для системы может быть фатальным, если убивается процесс svchost.exe
    Самый простой способ узнать какие службы работают в этом процессе — в task manager windows 7 (windows 2008) на вкладке Процессы щёлкнуть правой кнопкой по соответствующему процессу и выбрать из контекстного меню пункт «Перейти к службам». Откроется вкладка Службы, с выделенными службами в процессе.

    Ответить
    • itpro | 09.03.2016

      Админ, собственноручно прибивающий процесс svchost.exe должен страдать :)

      Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00174 sec