【SVN】 우분투 서버에서 SVN 자동 실행 서비스 등록

SVN을 설치하고 매번 컴퓨터를 부팅할 때마다 SVN 저장소를 데몬으로 등록해줘야 하는 번거로움이 있습니다. 이를 매번 부팅 때마다 자동으로 실행시키도록 서비스를 등록하는 방법을 알려드리도록 하겠습니다. 터미널에 아래 명령어를 입력합니다.

 

sudo vi /etc/init.d/svnserve

 

명령어를 입력하면 vi 편지비로 "svnserve" 파일이 열립니다. 아래 내용을 입력합니다. 내용을 입력할 때 "DAEMON_ARGS"가 있습니다. "DAEMON_ARGS"의 내용을 자신의 SVN 경로를 입력해 주셔야 합니다. 저 같은 경우 SVN 위치가 "/home/kimdukyu/server/svn/project1"입니다. 그래서 "DAEMON_ARGS="-d -r /home/kimdukyu/server/svn/project1/""로 입력을 했습니다. 꼭 경로를 변경하시기 바랍니다.

 

#! /bin/sh
### BEGIN INIT INFO
# Provides:          svnserve
# Required-Start:    $local_fs $syslog $remote_fs
# Required-Stop:     $local_fs $syslog $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start svnserve
### END INIT INFO

# Author: Michal Wojciechowski <odyniec@odyniec.net>

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /home/kimdukyu/server/svn/project1/"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

[ -x "$DAEMON" ] || exit 0

[ -r /etc/default/$NAME ] && . /etc/default/$NAME

. /lib/init/vars.sh

. /lib/lsb/init-functions

do_start()
{
	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
		|| return 1
	start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
		$DAEMON_ARGS \
		|| return 2
}

do_stop()
{
	start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
	RETVAL="$?"
	[ "$RETVAL" = 2 ] && return 2
	start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
	[ "$?" = 2 ] && return 2
	rm -f $PIDFILE
	return "$RETVAL"
}

case "$1" in
  start)
	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
	do_start
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  stop)
	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
	do_stop
	case "$?" in
		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
	esac
	;;
  restart|force-reload)
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	case "$?" in
	  0|1)
		do_start
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		esac
		;;
	  *)
	  	# Failed to stop
		log_end_msg 1
		;;
	esac
	;;
  *)
	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

exit 0

 

저장 후, 실행 권한을 설정합니다. 아래 명령어를 터미널에 입력합니다.

 

sudo chmod u+x /etc/init.d/svnserve

 

서비스 등록을 위해서 아래 명령어를 터미널에 입력합니다.

 

sudo update-rc.d svnserve defaults

 

서비스 실행을 위해서 아래 명령어를 터미널에 입력합니다.

 

sudo service svnserve start

 

이제 재부팅 후 아래 명령어를 터미널에 입력합니다.

 

sudo netstat -ntlp | grep svn

 

아래의 그림과 같이 SVN 저장소가 실행되어 있는 것을 볼 수 있습니다.

 

 

이 글을 공유하기

댓글

Designed by JB FACTORY