久々に技術っぽいことを書いてみる。
とはいえ、内容は次のサイトを見て貰えばOKなレベル。
取りあえず何が嬉しいの?
sudo initctl start hoge
でhoge
が起動出来ます。
しかも、取りあえずkill
しても自動で再起動させる事が出来るので、常時起動しておきたいプログラムの起動に便利。
さらに、嬉しいことに設定自体は超簡単です。
設定例
/etc/init/hoge.conf
として次のような内容を保存。
description "Hoge service" start on runlevel [2345] stop on runlevel [016] exec /user/local/bin/hoge respawn
sudo/initctl start hoge
でデーモンとして起動できます。
sudo/initctl stop hoge
で停止もできますし、
sudo/initctl restart hoge
で再起動も出来ます。
その他の設定
上の例で取りあえず起動出来るようになりましたが、現実的にはもう少し色々やりたいところ。
取りあえず、一番最初に必要になったのが実行ユーザの指定。
exec
にコマンドを挟めるのでexec sudo -u hoge /user/local/bin/hoge
でも良さそうですが、どうやらUpstartはその辺の仕組みもあるっぽい。
ただ、使っている環境のUpstartの環境が古いので、先のQuitaの記事のinitctl version < 1.4
の方を採用。
ついでにUpstartのCookbookもチェック
Upstart Intro, Cookbook and Best Practises
次のような感じで、取りあえず。
description "Hoge service" user=hoge command=/user/local/bin/hoge start on runlevel [2345] stop on runlevel [016] exec su -s /bin/sh -c 'exec "$0" "$@"' $user -- $command respawn