
Tengo un servicio que solo necesita iniciarseDESPUÉSotro servicio. ¿Hay alguna forma de configurar el servicio para que solo se inicie una vez que otro haya terminado de iniciarse?
Obviamente, me vendría bien un inicio retrasado o escribir un script por lotes para hacer esto, pero ambas son soluciones confusas/temporales. Entonces me preguntaba si puedo programar que esto suceda de alguna manera.
Se puede hacer?
Respuesta1
En mi experiencia, la mejor manera de crear dependencias de servicios, sin hurgar en el registro (algo que no es seguro ni fácilmente programable == repetible) es usar SC.exe, la utilidad de control de servicios incluida con cada versión de Windows desde Win2003.
Puede abrir una ventana de comandos y escribir sc
para obtener la ayuda completa, pero lo esencial es:
sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "netbios"
Crea un nuevo servicio, llamado "nuevo servicio", señala su ruta, lo hace iniciar automáticamente y lo hace dependiente del servicio NetBIOS.
Leer más sobre SCaquí.
Respuesta2
Tienes que usar el editor de registro (hasta donde yo sé) para que el servicio dependa del otro servidor. Localice eldependienteservicio en HKLM\SYSTEM\CurrentControlSet\services
y agrega un REG_MULTI_SZ
valor llamado DependOnService
. Coloque el nombre del servicio (no el nombre para mostrar, sino el mismo nombre que su clave de registro) como valor.
Cuando reinicie ahora, Windows solo iniciará su servicio dependiente después de que se inicie el servicio del que lo hizo depender. Del mismo modo, si el servicio del que depende no se inicia, su servicio dependiente tampoco se iniciará.
Respuesta3
Siempre que el servicio se implemente correctamente en el contenedor web, cuando inicie Tomcat, iniciará automáticamente el servicio como cualquier otra aplicación web. Tenga en cuenta que el servicio web implementado en el contenedor web no es más que un servicio incluido en un servlet que busca solicitudes SOAP a través de HTTP como cualquier otro servlet.
Respuesta4
Puede hacer que el segundo servicio dependa del primero y luego iniciar el segundo servicio en lugar del primero. Windows se asegurará de que se inicie el primer servicio antes de iniciar el segundo servicio.