Home Menu Search

Saqwel

IT and other things blog

Служба зависла в состоянии остановка

Поделиться с друзьями

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

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

Поддержать автора

Если наша цель действительно решить проблему, то необходимо сделать следующее:

  1. Открыть монитор ресурсов. Для этого нажать сочетание клавиш Win+R, набрать resmon и после этого нажать клавишу «Enter».
  2. В окне монитора ресурсов необходимо открыть вкладку ЦП. Правой кнопкой мыши нажать на процесс, запущенный зависшей службой (в моём случае процесс vmms) и выбрать пункт Анализ цепочки ожидания…
  3. В открывшемся окне можно будет видеть, что процесс ожидает другой процесс. В моём случае процесс vmms ожидал процесс svchost.exe (netsvc). Рисковать и останавливать процесс svchost.exe на важном сервере у меня не было ни малейшего желания, поэтому я полез смотреть что же творится в цепочке ожидания svchost.exe (netsvc). Оказалось, что svchost.exe (netsvc) ожидал завершения ещё одного процесса WmiPrvSE.exe.
  4. Следующим шагом необходимо найти процесс WmiPrvSE.exe с нужным PID и завершить его.
  5. Затем ещё раз открыть Анализ цепочки ожидания для процесса svchost.exe (netsvc) и убедиться, что он работает нормально. Если это не так, то необходимо остановить и другие зависшие процессы.

После этого проблемы должны прекратиться.

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

Leave a Reply