3 votes

Comment mettre en place des services basés sur Java pour une startup ?

Quelle est la meilleure façon de configurer un programme basé sur Java pour qu'il exécute un service et démarre au démarrage ?

  • upstart ( pre-start script y post-stop script ?)
  • un bon vieux SysV init ? ( start-stop-daemon ?)

Dans mon cas, je suis intéressé par la mise en place Jira qui possède ses propres scripts de démarrage et d'arrêt de style Tomcat -. $JIRA_HOME/bin/startup.sh y $JIRA_HOME/bin/shutdown.sh .

3voto

Jeremy Ruten Points 59989

La plupart du temps, vous pouvez supprimer une grande partie du code dans ces scripts et vous concentrer sur l'exécution du programme principal. Si vous pouvez lui dire de s'exécuter en avant-plan plutôt qu'en arrière-plan, cela rendra les choses plus simples. Sinon, vous devez utiliser 'expect fork' ou 'expect daemon' pour suivre les forks qu'un programme doit faire pour se détacher des terminaux de contrôle.

pre-start sert principalement à configurer les choses, comme créer des répertoires dans /var/run. Vous pouvez également créer un fichier de configuration, car l'environnement sera transmis à l'exécution principale.

post-start peut être utile si vous voulez vous assurer que upstart ne considère pas le service comme démarré tant qu'une certaine condition n'est pas remplie (comme le port qui répond aux requêtes).

En fin de compte, le but est de le rendre aussi simple que possible. Si le startup.sh exécute 'jira --daemon' et qu'à la place vous pouvez exécuter 'jira' et qu'il ne se détache pas, alors avec upstart vous feriez juste ce qui suit

start on runlevel [2345]
stop on runlevel [!2345]

exec jira

Tant que le processus ne se démonise pas, il est très facile pour upstart de suivre ce qu'il fait, ce qui conduit finalement à un fichier de travail plus simple et à un système plus robuste.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X