java -jar abc.jar
ターミナルに入力することで実行できるJava実行可能プログラムがあります。サービスとして実行するにはどうすればよいですか?と入力するなどして、サービスとして実行したいservice abc start
。
java -jar abc.jar
ターミナルに入力することで実行できるJava実行可能プログラムがあります。サービスとして実行するにはどうすればよいですか?と入力するなどして、サービスとして実行したいservice abc start
。
回答:
14.04にいることを確認してください。Ubuntu 16.04(以降)はUpstartではなくsystemdを使用します。
Upstartスクリプトは、/etc/init/
末尾がで終わるスクリプトファイルです.conf
。
2つのセクションが必要です。1つはいつ開始するかを示すセクション、もう1つは実行するコマンドを含むセクションです。
サンプルから開始する最も簡単なスクリプトは次のとおりです。
# myprogram.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program
の下にルートとして作成され/etc/init/myprogram.conf
ます。
スクリプトで複数のコマンドラインが必要な場合script
は、exec
行の代わりにセクションを使用します。
# myprogram.conf
start on filesystem
script
/usr/bin/java -jar /path_to/program
echo "Another command"
end script
サービスのbash補完を有効にするには、/etc/init.d
フォルダーにシンボリックリンクを追加します。
sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram
次に、開始して停止します。
sudo service myprogram start
upstart cookbookによると、実行するpre-start
/ post-start
およびpre-stop
/ post-stop
コマンドを作成できます。
さらに、プロセスが実行されているかどうかを確認する必要があると読みました。この質問を確認し、pre-start
セクションを使用してください。
sudo chmod +x /etc/init.d/myprogram
。注意:回答した方法はUbuntu 16.04では機能しません!
新興企業を作成する必要があります。 http://upstart.ubuntu.com/getting-started.html
Upstartは、古き良きSysV initスクリプトと比較して(IMHO)災害です。Upstartは、追加された作業にほとんど利点がなく、はるかに労力がかかります。そうは言っても、私はいくつかの新興のディフェンダーがそこにいるのではないかと疑っています。