ブログ

読んで思い出す。忘れるために書く

GitBucket をOS 起動時に立ち上げておく(Ubuntu)

サービスとして登録・起動させる設定をすることで: 常に起動させて使うタイプのアプリケーションを、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 ってなに(数字の種類と、それが登場するときの数字の意味)

Links