Meilleure méthode pour exécuter une application Java en tant que démon *nix ou service Windows ?

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

Question

Je recherche la meilleure méthode pour exécuter une application Java en tant que démon *NIX ou service Windows.J'ai regardé dans le Enveloppeur de services Java, le Projet Apache Commons 'jsvc', et le Projet Apache Commons 'procrun'.Jusqu'à présent, Java Service Wrapper semble être la meilleure option...mais je me demande s'il existe d'autres produits sous licence "Open Source friendly".

Était-ce utile?

La solution

J'ai moi-même eu beaucoup de succès avec Java Service Wrapper.Je n'ai pas regardé les autres, mais les principaux atouts de ServiceWrapper sont :

  • Excellente prise en charge de la plate-forme X - je l'ai utilisé sous Windows et Linux, et je l'ai trouvé facile sur les deux
  • Documentation solide - Les documents sont clairs et précis, avec d'excellents exemples
  • Prise en charge approfondie par plate-forme - Certaines fonctionnalités uniques du système de gestion des services Windows sont parfaitement prises en charge par le wrapper de service (sans redémarrage).Et sous Windows, vous verrez même le nom de votre application dans la liste des processus au lieu de simplement « java.exe ».
  • Conforme aux normes - Contrairement à de nombreux scripts d'initialisation Java ad hoc, les scripts du wrapper de service ont tendance à être conformes aux normes LSB.Cela peut s'avérer très important si jamais vous souhaitez une gestion de la haute disponibilité à partir de quelque chose comme Linux Heartbeat/HA.

Quoi qu'il en soit, juste mes 2 centimes...:)

Autres conseils

Une autre option est WinRun4J.Il s'agit uniquement de Windows mais possède quelques fonctionnalités utiles :

  • Prise en charge 32 bits et 64 bits
  • API pour accéder au journal des événements et au registre
  • Peut enregistrer un service pour qu'il dépende d'autres services (c'est-à-dire que serviceA et serviceB doivent démarrer avant serviceC)

Il est également open source (CPL), donc aucune restriction d'utilisation.

(divulgation complète :Je travaille sur ce projet).

Y a-t-il des attributs spéciaux que vous devez appliquer (comme la gestion des ressources guidée par le système d'exploitation) et que vous devez prendre en charge ?Sinon, pour Unix, vous devriez pouvoir démoniser votre application en écrivant un script init.d approprié et en configurant votre application pour qu'elle démarre automatiquement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top