Назад | Перейти на главную страницу

Как убить зависший сервис на Windows 2008R2

У меня есть сервер Windows 2008R2, на котором работает NSClient ++. По какой-то причине услуга изменилась и перестала отвечать на опросы Nagios.

Когда я попытался перезапустить службу, диспетчеру служб требуется много времени, чтобы попытаться убить службу, а затем в конечном итоге он отказывается с сообщением типа «служба слишком долго отвечает». Но ... он также запускает новый экземпляр службы.

Если я посмотрю в диспетчере задач или tasklist Теперь я вижу два экземпляра nsclient++.exe Бег.

Я пытался убить их обоих, используя:

Все вышеперечисленное запускалось в командной строке администратора.

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

Сервер не находится под нагрузкой на ресурсы (память, ЦП, диск и т. Д.), И все, что на нем работает, работает нормально.

Беглый взгляд на вкладку потоков в SysInternals Process Explorer показывает, что все эти nsclient++.exe экземпляры застряли при разгрузке:

Кроме того, я также попытался убить все TCP-соединения для этих зомби (?) Процессов (с помощью TCPView) в надежде, что я смогу запустить новый экземпляр, и он сможет захватить порт 5666. Затем мы могли бы перезагрузить сервер когда стало тише, но увы не вышло.

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

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

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