Script Unix au démarrage dans /etc/init.d ne fonctionne pas

J’ai essayé de faire fonctionner mon application Java en tant que démon en arrière-plan après le démarrage. J’ai suivi les instructions données dans la réponse supérieure ici et en vain.

Ceci est mon fichier /etc/init.d/myapp:

#!/bin/bash # MyApp # # description: bla bla case $1 in start) /bin/bash /var/lib/myapp/start.sh ;; stop) /bin/bash /var/lib/myapp/stop.sh ;; restart) /bin/bash /var/lib/myapp/stop.sh /bin/bash /var/lib/myapp/start.sh ;; esac exit 0 

comme pour /var/lib/myapp/start.sh, cela ressemble à ceci:

 #!/bin/bash java -jar myapp-1.0.0RC.jar & 

et fonctionne correctement lorsqu’il est exécuté depuis un terminal via ssh.

J’ai également exécuté la commande update-rc.d myscript defaults reçu qu’un avertissement sur les en-têtes et les LSB.

Après cela, une fois que je redémarre le serveur, l’application n’est pas en cours d’exécution. Toute aide est appréciée.

Merci.

Lorsque les scripts bash sont exécutés, ils ne sont pas automatiquement exécutés à partir du répertoire qui les contient.

Vous devrez soit mettre à jour vos scripts pour changer de répertoire que celui qui contient les scripts avant de démarrer le jar:

 #!/bin/bash cd /var/lib/myapp/ java -jar myapp-1.0.0RC.jar & 

Ou, reportez-vous au fichier jar avec un chemin complet:

 #!/bin/bash java -jar /var/lib/myapp/myapp-1.0.0RC.jar & 

Vérifiez si votre service est enregistré correctement via chkconfig

 $ chkconfig --list 

Sinon, vous pouvez voir votre service répertorié sur la sortie, puis essayez d’append ces lignes à votre script.

 #!/bin/bash # chkconfig: 2345 95 20 # description: bla bla # processname: myapp 

et puis courir

 chkconfig --add myapp 

Pour plus d’informations, vous pouvez vérifier la page de chkconfig pour chkconfig