web-dev-qa-db-ja.com

Ubuntu Upstartでサービスを作成する方法

Java実行可能プログラムがあり、ターミナルでJava -jar abc.jarと入力することで実行できます。サービスとして実行するにはどうすればよいですか? service abc startと入力して、サービスとして実行したいです。

21
mecek

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

pstart cookbook に従って、実行するpre-start/post-startおよびpre-stop/post-stopコマンドを作成できます。

さらに、プロセスが実行されているかどうかを確認する必要があると読みました。 この質問 を確認し、pre-startセクションを使用することもできます。

41

新興企業を作成する必要があります。 http://upstart.ubuntu.com/getting-started.html

Upstartは、古き良きSysV initスクリプトに比べて(IMHO)災害です。 Upstartは、追加された作業にほとんど利点がなく、はるかに多くの労力を費やしています。そうは言っても、私は明らかなことを述べるために私に任務に連れて行くいくつかの新興の擁護者がそこにいると思う。

0
Andrew