Debian8(jessie)での自動起動とsvnの起動スクリプト
debianの自動起動にはいつのまにかinsservというのを使うことになっています。
$ sudo insserv -s
こんな感じに表示されます。
K:01:0 1 6:nginx S:17:2 3 4 5:nginx
ランレベルが2 3 4 5 では起動し、0 1 6では起動しない、ということになります。
サービスへの追加と停止はこうする。
# 追加 $ sudo insserv -d nginx # 削除 $ sudo insserv -r nginx
insserv に追加されないサービスの時
実はsvnは追加されなかった。
ので、ちょうどよいので、自前で起動スクリプトを作って登録する方法を書いておこう。
通常は/etc/init.dの下に起動スクリプトが生成されます。
svnのは作られなかったので・・・作ってみました。
svnserve というファイル名で/etc/init.dの下に配置しました。
#!/bin/bash ### BEGIN INIT INFO # Provides: svnserve # Required-Start: $local_fs # Required-Stop: $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: svnserve ### END INIT INFO prog=svnserve pidfile=/var/run/svnserve.pid #svnserve=/usr/local/subversion/current/bin/svnserve svnserve=/usr/bin/svnserve RETVAL=0 ROOT=/var/svn PORT=3691 start() { [ ! -f $pidfile ] || exit 1 echo -n $"Starting $prog: " start-stop-daemon --start --quiet --pidfile $pidfile --make-pidfile --exec $svnserve -- -d -r $ROOT --listen-port $PORT RETVAL=$? echo start svnserve return $RETVAL } stop() { [ -f $pidfile ] || exit 1 echo -n $"Stopping $prog: " start-stop-daemon --stop --exec $svnserve rm -f $pidfile RETVAL=$? echo stop svnserve return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status $svnserve RETVAL=$? ;; restart) stop start ;; *) echo $"Usage: $0 {start|stop|status|restart}" RETVAL=1 esac
BEGIN INIT INFO という節がはじめに必要です。
起動させたいランレベルを書いておきます。通常は丸々コピーで良いでしょう。
また
ROOT=/var/svn
PORT=3691
と言う変数を用意して、ルートパスとポート番号を指定できるようにしました。
apacheをいれないつもりなのでhttp経由での接続は不可であるため、デフォルトの3690番は使わないほうがいいだろうとおもいます。
登録は簡単です。
$ sudo insserv svnserve
削除はこうです。
$ sudo insserv -r svnserve
確認はこう
$ sudo find /etc |grep svnserve /etc/rc3.d/S01svnserve /etc/rc4.d/S01svnserve /etc/rc1.d/K01svnserve /etc/rc2.d/S01svnserve /etc/rc5.d/S01svnserve /etc/rc6.d/K01svnserve /etc/rc0.d/K01svnserve
試しに再起動してみて、ちゃんと起動しているか確かめます。
起動ユーザーはrootになりますよ。
ディスカッション
コメント一覧
まだ、コメントがありません