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 $