サービスとして登録・起動させる設定をすることで: 常に起動させて使うタイプのアプリケーションを、OS 立ち上げ後すぐに使えるようにしておく
GitBucket を選んだ特別な理由はない...
まとめ
これを利用することで、ローカルだけで使用する自分用のWeb アプリケーションを起動させておく、といった使い方もできるかもしれない
前提
今回は GitBucket を使いたいので :
java
コマンドが使える状態である/usr/bin/
にgitbucket.war
を置いてある(ダウンロード: GitBucket: A Git platform)
手順
大まかな手順として:
/etc/init.d/skeleton
を参考に(ほぼコピペのみ)、サービスの「起動・停止・再起動・状態表示」のコマンドを受け付けられるようにスクリプトを書くupdate-rc.d
: 書いたスクリプトに対して、/etc/rc*.d/
にリンクを張って、runlevel に応じた起動ができるようにする
スクリプトを書く
cd /etc/init.d # `skeleton` をコピーして適当な名前... `gitbucket` に変更して、編集する sudo cp skeleton gitbucket sudo vim gitbucket sudo chmod +x gitbucket # 実行属性の付与
書き換えた部分は特に多くはなくて、コマンド名と引数を書き換えただけ(ファイルの全容は実際のファイル、 skeleton
を参照のこと)
/etc/init.d/gitbucket
:
#! /bin/sh ### BEGIN INIT INFO # Provides: gitbucket # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: GitBucket # Description: This file should be used to construct scripts to be # placed in /etc/init.d. ### END INIT INFO # Author: my name <example@example.com> # Do NOT "set -e" # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="GitBucket" NAME="java" DAEMON=/usr/bin/$NAME DAEMON_ARGS="-jar /usr/bin/gitbucket.war" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME
リンクを張る
sudo update-rc.d gitbucket defaults
再起動をしてあげると、以降 GitBucket のページにWeb ブラウザからアクセスできるようになる
わからなかったこと
/usr/bin/
にgitbucket.war
を置くことの是非/etc/init.d/
にREADME
が存在してなかったこと/etc/init.d/
にskeleton
が存在してなかったこと- Runlevel ってなに(数字の種類と、それが登場するときの数字の意味)