Melhor método para executar um aplicativo Java como um daemon *nix ou serviço do Windows?

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

Pergunta

Estou procurando o melhor método para executar um aplicativo Java como um daemon *NIX ou um serviço do Windows.Eu olhei para o Wrapper de serviço Java, o Projeto Apache Commons 'jsvc', e a Projeto Apache Commons 'procrun'.Até agora, o Java Service Wrapper parece ser a melhor opção...mas estou me perguntando se existem outros produtos licenciados "amigáveis ​​de código aberto" por aí.

Foi útil?

Solução

Eu mesmo tive grande sucesso com o Java Service Wrapper.Não olhei para os outros, mas os principais pontos fortes do ServiceWrapper são:

  • Excelente suporte à plataforma x - usei-o no Windows e no Linux e achei fácil em ambos
  • Documentação sólida - Os documentos são claros e diretos, com ótimos exemplos
  • Suporte profundo por plataforma - Existem alguns recursos exclusivos no sistema de gerenciamento de serviços de janela que são perfeitamente suportados pelo wrapper de serviço (sem reinicialização).E no Windows, você verá até o nome do seu aplicativo na lista de processos, em vez de apenas “java.exe”.
  • Compatível com padrões - Ao contrário de muitos scripts de inicialização Java ad-hoc, os scripts para wrapper de serviço tendem a ser compatíveis com os padrões LSB.Isso pode acabar sendo muito importante se você quiser gerenciamento de alta disponibilidade de algo como Linux Heartbeat/HA.

De qualquer forma, apenas meus 2 centavos...:)

Outras dicas

Outra opção é WinRun4J.Isto é apenas para Windows, mas tem alguns recursos úteis:

  • Suporte de 32 bits e 64 bits
  • API para acessar o log de eventos e registro
  • Pode registrar o serviço como dependente de outros serviços (ou seja, serviçoA e serviçoB devem ser inicializados antes do serviçoC)

Também é compatível com código aberto (CPL), portanto, não há restrições de uso.

(transparência completa:Eu trabalho neste projeto).

Há algum atributo especial que você precisa aplicar (como gerenciamento de recursos guiado pelo sistema operacional) que precisa ser compatível?Caso contrário, para Unix você poderá daemonizar seu aplicativo escrevendo um script init.d apropriado e configurando seu aplicativo para iniciar automaticamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top