web-dev-qa-db-ja.com

スタートアップスクリプトを作成したい。助けとアドバイスが必要

Atm、私は仕事をランダムに開始および停止する必要があります(私の心に良いWordがないため)。 Java -jar foo.jarと入力して開始し、停止するにはpidを見つけて強制終了します。削除しても、データの損失や破損などは発生しません。参考までに。最初のコマンドは特定のディレクトリ、つまり/usr/share/jetty(killはどこからでも実行できます)から実行する必要があるため、これらの手順を両方とも行うのは面倒です。

だから私はの行に何かを考えていました

service foo startおよびservice foo stopは、サービスを開始および停止します。それは可能ですか?そしてもっと重要なことは正しいですか?他の解決策はありますか?

ありがとう。

13
theTuxRacer

ええ、Upstartはこのための非常に良いオプションです。新しいファイルを作成するだけです:

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

ファイル名は好きなものに変更できますが、その中にこれを貼り付けることができます:

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

それについてのいくつかのメモ、私はセキュリティのために誰にもsuingしています。別のアカウントにsuする必要があるかもしれませんが、rootとして実行することはおそらくお勧めできません。

13
Oli