У меня есть сервер Windows 2008R2 под управлением NSClient ++. По какой-то причине служба перевернулась и перестала отвечать на опрос Nagios.
Когда я попытался перезапустить службу, диспетчеру службы потребовалось много времени, чтобы попытаться убить службу, а затем, в конечном итоге, я получил сообщение «служба заняла слишком много времени, чтобы ответить». Но ... он также запускает новый экземпляр службы.
Если я смотрю в диспетчере задач или tasklist
теперь я вижу два экземпляра nsclient++.exe
запуска.
Я пытался убить оба из них, используя:
щелкните правой кнопкой мыши и «Завершить процесс» в диспетчере задач - делает вид, что убивает процесс, и не сообщает об ошибках (например, «Доступ запрещен»), но процесс все еще там.
taskkill /PID <proc id> /F
- сообщает,SUCCESS: The process with PID 6672 has been terminated.
но процесс все еще выполняется.скачал SysInternals PsTools и запустил
pskill <PID>
- отчетыProcess <PID> killed
- но процесс все еще там.выполнить,
at hh:mm pskill <PID>
чтобыpskill
сделать это в качествеSYSTEM
учетной записи ... и вы догадались, что процесс все еще выполняется.
Все вышеперечисленное было запущено в командной строке администратора.
Что еще можно попробовать, кроме перезагрузки, которая на самом деле не идеальна (коробка является достаточно важным рабочим сервером)?
Сервер не находится под давлением ресурсов (память, процессор, диск и т. Д.), И все, что на нем работает, работает просто отлично.
Быстрый просмотр вкладки потоков в SysInternals Process Explorer показывает, что все эти nsclient++.exe
экземпляры застряли при выгрузке:
Кроме того, я также попытался убить все соединения TCP для этих процессов зомби (?) (С TCPView) в надежде, что я смогу запустить новый экземпляр, и он сможет захватить порт 5666. Затем мы сможем перезагрузить сервер когда все тише, но, увы, это не сработало.
Stack
, как выглядит стек для застрявших потоков?