OSStodoソフトウェア

Subversion

start-stop-daemonを使ってSubversionのsvnserveを自動起動するように設定しましたが、start-stop-daemonではなぜか起動したプロセスを停止できませんでした。
仕方なく下記のようなスクリプトを準備しました。

$ cat /etc/init.d/svnserve
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/svnserve
DAEMON_OPTS="-d -r /var/subversion"
NAME=svnserv
DESC="Subversion server."
USER=svn
PIDFILE=/var/run/$NAME.pid
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
start_puppet() {
#       start-stop-daemon --start --quiet --pidfile $PIDFILE \
#               --user $USER --group $USER --exec $DAEMON -- $DAEMON_OPTS
sudo -u $USER $DAEMON $DAEMON_OPTS
if [ "$?" -eq 0 ]
then
pidof $DAEMON > $PIDFILE
fi
}
stop_puppet() {
#       start-stop-daemon --stop  --quiet --pidfile $PIDFILE \
#               --user $USER --group $USER --signal 9 --exec $DAEMON
kill -9 `cat $PIDFILE`
rm -f $PIDFILE
}
case "$1" in
start)
log_begin_msg "Starting $DESC"
start_puppet
log_end_msg 0
;;
stop)
log_begin_msg "Stopping $DESC"
stop_puppet
log_end_msg 0
;;
restart|force-reload)
log_begin_msg "Restarting $DESC"
stop_puppet
sleep 1
start_puppet
log_end_msg 0
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
$

自動起動するようにupdate-rc.dコマンドで設定して動作確認してみます。
停止も問題なく動きました。

$ sudo update-rc.d svnserve defaults 98
Adding system startup for /etc/init.d/svnserve ...
/etc/rc0.d/K98svnserve -> ../init.d/svnserve
/etc/rc1.d/K98svnserve -> ../init.d/svnserve
/etc/rc6.d/K98svnserve -> ../init.d/svnserve
/etc/rc2.d/S98svnserve -> ../init.d/svnserve
/etc/rc3.d/S98svnserve -> ../init.d/svnserve
/etc/rc4.d/S98svnserve -> ../init.d/svnserve
/etc/rc5.d/S98svnserve -> ../init.d/svnserve
$ sudo /etc/init.d/svnserve start
Starting Subversion server..
$ svn ls svn://localhost/svn
trunk/
$ sudo /etc/init.d/svnserve stop
Stopping Subversion server..
$ svn ls svn://localhost/svn
svn: Can't connect to host 'localhost': Connection refused
$
タイトルとURLをコピーしました