среда, 29 июля 2015 г.

Остановка зависшего сервиса в Windows

Чтобы остановить сервис, зависший в состоянии starting или stopping (в этом случае команды net start/stop не работают), делаем следующее:

1. Открываем командную строку:
Пуск -> Выполнить -> вводим cmd.exe и нажимаем Ввод.

2. Узнаем PID (Process ID) сервиса:
В cmd.exe выполняем следующий код:
sc queryex SERVICENAME
где SERVICENAME - имя зависшего процесса, можно посмотреть в списке сервисов. Например для сервиса очереди печати (Print spooler) имя процесса - spooler.

3. Убиваем процесс:
Выполняем в cmd.exe следующий код:
taskkill /PID PROCESS_PID_NNN /F
где PROCESS_PID_NNN - номер процесса для остановки.

upd. Для windows 2003 server встретилась ситуация, когда при установке обновлений индикатор прогресса останавливается насовсем, при этом в процессах присутствует WmiPrvSE.exe (кушает от 25 и выше % процессорного времени).  В этом случае убивать сервис автоматического обновления не надо.
Необходимо удалить процесс WmiPrvSE.exe, и установка обновлений продолжится дальше. 

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