因为配置vsftp导致我重新启动机器两次,原来以standalone方式运行的svnserve挂掉了。svnserve是前几天配置的,今天再让我看得时候,我居然全都忘了。当时是通过bin里面的svnserve程序直接启动的,但是今天发现还有其他两种方式,一种以服务方式,一种以挂到xinetd守护进程的方式启动。而像svnserve这样的服务器,应该选择以xinetd方式启动比较好,这样就不需要每次开机还要重新手动启动一次了。
svnserve -d -r /srv/svn/repos
-d表示挂到守护进程上,-r和后面的路径表示虚拟的root目录为/srv/svn/repos。每个库的权限管理放在conf/svnserve.conf里面比较好,但是以服务启动的话,它默认情况下不是使用的这里的权限管理(我用的openSuSE)。
8、http://www.subversion.org.cn/svnbook/1.2/svn.serverconfig.svnserve.html
svn 服务器启动代码:
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops the Subversion service
# subversion options
OPTIONS="-d -r /var/svn"
prog=_subversion
RETVAL=0
_subversion=/usr/bin/svnserve
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
start() {
KIND="SubVersion"
echo -n $"Starting $KIND services: "
daemon $_subversion $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/subversion || /
RETVAL=1
return $RETVAL
}
stop() {
KIND="SubVersion"
echo -n $"Shutting down $KIND services: "
killproc $_subversion
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/subversion
echo ""
return $RETVAL
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
status)
status $dc_server
RETVAL=$?
;;
condrestart)
[ -f /var/lock/subsys/subversion ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
exit 1
esac
exit $?