Tengo un servidor Windows 2008R2 que ejecuta NSClient++. Por alguna razón, el servicio se puso nervioso y dejó de responder a las encuestas de Nagios.
Cuando intenté reiniciar el servicio, el administrador de servicios tarda mucho en intentar cerrar el servicio y finalmente se da por vencido con un mensaje como "el servicio tardó demasiado en responder". Pero... también inicia una nueva instancia del servicio.
Si miro en el Administrador de tareas, tasklist
ahora puedo ver dos instancias en nsclient++.exe
ejecución.
Intenté matar a ambos usando:
haga clic derecho y "Finalizar proceso" en el administrador de tareas: pretende finalizar el proceso y no informa errores (por ejemplo, acceso denegado), pero el proceso aún está allí.
taskkill /PID <proc id> /F
- informaSUCCESS: The process with PID 6672 has been terminated.
pero el proceso aún está en ejecución.Descargué SysInternals PsTools y lo ejecuté
pskill <PID>
(informes)Process <PID> killed
, pero el proceso aún continúa ahí.ejecute
at hh:mm pskill <PID>
para poderpskill
hacer esto como laSYSTEM
cuenta... y lo adivinó, el proceso aún se está ejecutando.
Todo lo anterior se ejecutó en el símbolo del sistema del administrador.
Aparte de un reinicio que no es realmente ideal (la caja es un servidor de producción bastante crítico), ¿qué más puedo probar?
El servidor no está bajo ninguna presión de recursos (memoria, CPU, disco, etc.) y todo lo que se ejecuta en él funciona bien.
Un vistazo rápido a la pestaña de subprocesos en SysInternals Process Explorer muestra que todas estas nsclient++.exe
instancias están atascadas en la descarga:
Aparte, también intenté eliminar todas las conexiones TCP para estos procesos zombie(?) (con TCPView) con la esperanza de poder iniciar una nueva instancia y poder tomar el puerto 5666. Luego podríamos reiniciar el servidor. cuando las cosas están más tranquilas, pero lamentablemente eso no funcionó.
Respuesta1
Aunque parece que ya lo has descubierto, el problema es que el proceso está esperando algo en el Kernel. (Esto suele ser un problema a nivel del controlador, pero no siempre). La única forma de finalizar dicho proceso es descargar el kernel, lo cual, por supuesto, no se puede hacer sin reiniciar.
Podría valer la pena probar un poco de depuración del kernel (¿Esta herramienta funciona en 2008 R2??) con la esperanza de reducir la causa o el conflicto específico, pero sus opciones para manejar el problema son vivir con él o reiniciar el servidor para eliminarlo.
¿Hay alguna razón por la que no has considerado vivir con ello? Si es solo un proceso zombie y no afecta nada, creo que podría posponer el reinicio hasta una ventana de mantenimiento o un momento más oportuno. Normalmente, mi enfoque, cuando el proceso zombie o colgado no interfiere con nada, ocúpese de ello durante el próximo ciclo de parche o ventana de mantenimiento programada.