¿El mejor método para ejecutar una aplicación Java como * nix Daemon o servicio de Windows?

StackOverflow https://stackoverflow.com/questions/25530

Pregunta

Estoy buscando el mejor método para ejecutar una aplicación Java como un demonio * NIX o un servicio de Windows. He consultado Java Service Wrapper , Proyecto Apache Commons 'jsvc' , y Proyecto Apache Commons 'procrun' . Hasta ahora, el Java Service Wrapper parece ser la mejor opción ... pero, me pregunto si hay algún otro '' Código abierto amigable '' productos con licencia por ahí.

¿Fue útil?

Solución

Yo mismo he tenido un gran éxito con Java Service Wrapper. No he mirado a los demás, pero las principales fortalezas de ServiceWrapper son:

  • Excelente soporte para la plataforma x: lo he usado en Windows y Linux, y lo encontré fácil en ambos
  • Documentación sólida: los documentos son claros y directos, con excelentes ejemplos
  • Soporte profundo por plataforma: hay algunas características únicas en el sistema de administración de servicios de Windows que son perfectamente compatibles con el reiniciador de servicios (sin reinicio). Y en Windows, incluso verá el nombre de su aplicación en la lista de procesos en lugar de solo "java.exe".
  • Cumple con los estándares: a diferencia de muchos scripts de inicio Java ad-hoc, los scripts para el contenedor de servicios tienden a cumplir con los estándares LSB. Esto puede terminar siendo muy importante si alguna vez desea una administración de alta disponibilidad de algo como Linux Heartbeat / HA.

De todos modos, solo mis 2 centavos ... :)

Otros consejos

Otra opción es WinRun4J . Esto es solo para Windows pero tiene algunas características útiles:

  • Soporte de 32 bits y 64 bits
  • API para acceder al registro de eventos y al registro
  • Puede registrar el servicio para que dependa de otros servicios (es decir, serviceA y serviceB deben iniciarse antes de serviceC)

También es compatible con código abierto (CPL), por lo que no hay restricciones de uso.

(divulgación completa: trabajo en este proyecto).

¿Hay algún atributo especial que deba aplicar (como la administración de recursos guiada por el sistema operativo) que deba admitir? De lo contrario, para Unix, debería poder demonizar su aplicación escribiendo un script init.d apropiado y configurando su aplicación para que se inicie automáticamente.

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