windows-services - servicio - el archivo especificado se ha marcado para ser eliminado
Cómo controlar los servicios de Windows (8)
¿Te interesaría un producto Blade Logic llamado Blade Logic Configuration Manager? No es gratis pero puede hacer mucho más que monitorear servicios de Windows. Mirar por encima. Hará todo lo que haya preguntado en su pregunta y más
Estoy buscando una manera de controlar ciertos servicios de Windows (en Windows Server 2003) y reiniciar si es necesario . Los servicios se encuentran en diferentes servidores e incluyen principalmente servicios de SQL Server (por ejemplo, SQL Server Agent), pero también algunos servicios propietarios.
Las alertas por correo electrónico enviadas si un servicio se ha detenido también serían muy útiles.
Esto depende exactamente de lo que quiere monitorear:
- Un servicio se ha detenido realmente en lo que respecta al Administrador de control de servicios (SCM).
- Un servicio se ha bloqueado sin que el SCM esté al tanto; esto es muy común debido al enhebrado.
- Un servicio se colgó sin que SCM lo supiera, también es muy común.
Para el primer elemento, puede configurar el servicio para iniciar una secuencia de comandos que envía una alerta por correo electrónico. Tenga en cuenta que esto puede ser realmente molesto si el servicio se reinicia debido a circunstancias fuera de su control (dependencia de una conexión de red escamosa, o lo que sea).
Para los otros dos elementos, necesitará algún tipo de servicio de latido, que puede construir o comprar. Tenga cuidado de que el monitor de latido se ejecute localmente en los servicios que supervisa porque, como escribí hace un tiempo, la red no es confiable .
Pueden ser algunas herramientas dedicadas, pero solo quiero señalar la herramienta wmic .
wmic /node:[hostname] service list
puede listar los servicios de cualquier computadora
WMIC SERVICE where caption=''TELNET'' CALL STARTSERVICE
reiniciaría el servicio de telnet.
Si encapsula wmic en un lenguaje de script (capaz de enviar correo electrónico), puede tener la herramienta de monitoreo que está buscando.
Si está interesado en alguna programación .NET , el espacio de nombres System.ServiceProcess proporciona clases que le permiten implementar, instalar y controlar las aplicaciones de servicio de Windows.
Ejemplo simple, verificar e iniciar un servicio en C #:
var srv = new ServiceController("MyService");
Console.WriteLine("MyService Status {0}", srv.Status);
if (srv.Status != ServiceControllerStatus.Running)
srv.Start();
Una versión "podría ser suficiente" está integrada en Windows. Consulte la pestaña "Recuperación" de las propiedades del servicio, que está disponible a través de services.msc
.
Puede actuar en un servicio fallido con:
- "Reiniciar el servicio"
- "Ejecutar un programa"
- "Reinicia la computadora"
"Ejecutar un programa" podría ser un pequeño script que envíe un correo, por ejemplo.
Si desea una solución más grande con un panel de información general y todo, hay muchas soluciones de monitoreo del sistema disponibles. Por ejemplo, me viene a la mente SolarWinds IPMonitor, o Nagios, o Cacti.
+1 para asegurarse de que los servicios sean monitoreados en la máquina local.
Algo como Service Hawk puede supervisar sus servicios y reiniciarlos si se detienen y le envía una alerta por correo electrónico. También podría considerar programar reinicios periódicos ya que, como se menciona en otro póster, el servicio no siempre aparece como "detenido" en lo que respecta al SCM. En esos casos, el servicio se cuelga, congela o se arruina y se reinicia el servicio de vez en cuando con un horario que lo mantiene funcionando sin problemas. Simplemente borra la memoria, etc. y le da un nuevo comienzo.
Puede probar un VBScript simple como este http://themonitoringguy.com/scripts-code/monitoring-windows-services-vbscript/
Puede usar el Monitor de servicio de Windows gratuito de ManageEngine. Al usar esto, puede iniciar / detener los servicios en el sistema remoto.
http://www.manageengine.com/free-windows-service-monitor/free-windows-service-monitor-index.html