web-dev-qa-db-fra.com

Démarrer un fichier jar comme service sous linux

Je veux démarrer et arrêter mon fichier jar comme suit

service myService start

service myService stop

mon fichier jar en cours d'exécution comme suit

cd /home/alex/IdeaProjects/myService
Java -jar target/myService-SNAPSHOT-1.jar server config.yml

Que devrais-je faire?

29
Alex Mathew

Vous avez besoin d'un Service Wrapper pour exécuter le fichier Jar.

Il existe des exemples et des instructions pour init.d ici. ou pour systemd (ubuntu 16+) ici

31
PbxMan
5
user2684301

Si vous voulez essayer la méthode DIY, vous pouvez placer un script de démarrage dans votre répertoire /etc/init.d comme indiqué ici.

http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/

Cependant, pour implémenter un yourScript stop, je vous recommande de diviser vos fonctionnalités en un lanceur et un démon, et de rendre votre lanceur capable de démarrer ou de communiquer avec votre démon existant afin de lui envoyer des commandes. Ensuite, votre script de démarrage invoquerait uniquement votre lanceur, qui à son tour démarrerait un nouveau démon, ou enverrait des commandes à celui existant.

3
Jorge_B