En tant qu’Am, j’ai besoin de commencer au hasard et d’arrêter (faute d’une meilleure Parole dans ma tête) un travail. Je commence par taper Java -jar foo.jar
et pour l'arrêter, découvrir son pid et le tuer. Le tuer ne cause aucune perte de données, aucune corruption ou quoi que ce soit, juste un renseignement. Il est fastidieux de faire ces deux étapes car la première commande doit être exécutée à partir d’un répertoire particulier, c’est-à-dire /usr/share/jetty
(le kill peut être exécuté de n’importe où).
Alors je pensais quelque chose sur les lignes de
service foo start
et service foo stop
pour démarrer et arrêter les services. Est-ce possible, et surtout correct? N 'y a-t-il pas une autre solution?
Merci.
Ouais Upstart est une très bonne option pour cela. Il suffit de créer un nouveau fichier:
sudoedit /etc/init/my-jetty-jar.conf
Vous pouvez changer le nom du fichier comme bon vous semble mais y coller ceci:
description "Run my jetty jar"
# no start option as you might not want it to auto-start
# This might not be supported - you might need a: start on runlevel [3]
stop on runlevel [!2345]
# if you want it to automatically restart if it crashes, leave the next line in
respawn
script
cd /usr/share/jetty
su -c "/usb/bin/Java -jar /path/to/foo.jar" nobody
end script
Quelques notes à ce sujet, je suis su
ing à personne pour la sécurité. Vous aurez peut-être besoin de su
dans un autre compte, mais il n'est probablement pas recommandé de le lancer en tant que root
.