it-swarm.com.de

Willst du ein Upstart-Skript machen; brauche Hilfe und Rat

Atm, ich muss zufällig einen Job starten und stoppen (mangels eines besseren Wortes in meinem Kopf). Ich beginne es, indem ich Java -jar foo.jar eingebe und um es zu stoppen, finde ich seine PID heraus und töte sie. Wenn Sie es töten, gehen keine Daten verloren, und es kommt zu keiner Beschädigung, nur zu Ihrer Information. Es ist mühsam, diese beiden Schritte auszuführen, da der erste Befehl aus einem bestimmten Verzeichnis ausgeführt werden muss, dh /usr/share/jetty (Der Kill kann von überall ausgeführt werden).

Also dachte ich etwas in der Art von

service foo start und service foo stop zum Starten und Beenden von Diensten. Ist das möglich und vor allem richtig? Gibt es eine andere Lösung?

Vielen Dank.

13
theTuxRacer

Ja, Upstart ist eine ziemlich gute Option dafür. Erstellen Sie einfach eine neue Datei:

sudoedit /etc/init/my-jetty-jar.conf

Sie können den Dateinamen in einen beliebigen Namen ändern, diesen dann jedoch beibehalten:

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

Einige Anmerkungen dazu, ich bin suing zu niemandem für die Sicherheit. Möglicherweise benötigen Sie es, um su in einem anderen Konto auszuführen, es wird jedoch wahrscheinlich nicht empfohlen, es als root auszuführen.

13
Oli