Pregunta

Estoy buscando una biblioteca que me permita buscar el estado de un servicio de Windows para verificar que el servicio esté iniciado y ejecutándose.Busqué en la biblioteca Sigar, pero es GPL y por lo tanto no puedo usarla.Se requiere una licencia comercial o BSD (más o menos), ya que se incluirá en el software comercial.

¿Fue útil?

Solución

Si nada más ayuda, intente pensar en un enfoque ligeramente diferente (si puede, por supuesto), por ejemplo:

  • Hay una gran cantidad de software gratuito y no gratuito que realiza monitoreo, incluido el monitoreo de servicios de Windows (p. ej.nagios, Zabbix, etc.).Estos monitores suelen tener una API abierta en la que su aplicación Java podría integrarse de diferentes maneras.
  • Si tiene control sobre la aplicación de servicio dependiente, exponga otra forma diferente para que su aplicación Java la verifique (p. ej.ejecutar un detector ficticio en un puerto, crear un archivo, etc.).Los servicios de Windows no son multiplataforma, por lo tanto, no es algo que usted esperaría que fuera compatible en el corto plazo.

Otros consejos

No creo que exista una forma puramente Java de hacer esto porque algunos sistemas operativos no tienen la noción de "servicios" como la tiene Windows.En nuestros proyectos, escribimos un contenedor para las llamadas al comando "sc" desde la línea de comando.Para obtener el estado de un servicio, puedes hacer:

sc \\ consulta en alguna computadora "mi nombre de servicio"

Tendrás que analizar manualmente el resultado, pero es bastante sencillo.

No conozco ninguna biblioteca, pero dependiendo de qué tan detallado necesites ser, puedes arreglártelas con algunos comandos de shell y analizando el resultado.

INICIO NETO Nombre del Servicio

iniciará el servicio o le devolverá un mensaje de error que le indicará que ya se inició.Sin embargo, no conozco ningún comando que simplemente te dé el estado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top