Tengo un molesto servicio de software que falla cada pocas semanas. Tiene dos componentes. Servicio A y Servicio B. El Servicio B entra en un estado extraño y deja de aceptar conexiones del Servicio A. La única salida es reiniciar ambos servicios manualmente o reiniciar el servidor.
Me gustaría programar un reinicio del servicio para A y B de forma regular. Digamos cada 24 horas. ¿Cómo hacerlo?
Respuesta1
Siguiendo las sugerencias de los comentarios, terminé creando un archivo por lotes que contiene la secuencia de reinicio adecuada con tiempos de espera. Los tiempos de espera fueron necesarios debido a las dependencias entre los servicios. Lo programé para que se ejecutara como administrador todas las noches a las 4 a.m. usando el programador de tareas.
net stop "Service B"
net stop "Service A"
timeout /T 10
net start "Service B"
timeout /T 10
net start "Service A"
No es ideal, pero servirá para este escenario: una implementación de escritorio remoto con menos de 10 usuarios.
Respuesta2
En lugar de crear un archivo bat, que puede dañarse o faltar, puede crear una tarea programada conmúltiplecomportamiento. Una acción para detener el servicio y otra para reiniciarlo. Ambos ejecutados con el NET
comando. Deles un argumento STOP e START, seguido del nombre del servicio.
NET STOP "Service A"
NET START "Service A"
Aquí estáuna publicación en StackOverflow que explica cómo.
Respuesta3
Net Stop "NombreServicio" && Net Start "NombreServicio"
Y pueden encadenar && para detener/iniciar el servicioB.
Parada de red "ServicioA" && Inicio de red "ServicioA" && Parada de red "ServicioB" && Inicio de red "ServicioB"
Respuesta4
Puedes crear un archivo bat y dentro del bat intentar algo como esto:
parada neta {nombreservicio} y inicio neto {nombreservicio}
y utilizar el archivo bat como programa para una tarea programada.