우분투 20.04 에 svn 설치 및 포트 설정, 서비스 등록
포트 변경 및 서비스 실행 / 중단을 위한 서비스 등록, 재부팅 시 자동 시작
지난 포스팅(https://typingdog.tistory.com/99)에서 SVN 서버 설치 및 구동 방법을 다루었다. 이번 포스팅에서는 시스템 부팅 시 자동 재 실행, 포트 변경 등을 정리해보았다.1. 서비스 등록자동 재 실행 및 systemctl 등을 통해 명령하기 위해서는 서비스에 등록을 해야한다.
먼저, svn 을 자동으로 실행하는 데몬을 만든다.
sudo vim /etc/rc.local
# Subversion
svnserve -d -r /svn/svnrepo위 내용을 rc.local 에 기록하고 저장.
/etc/init.d 디렉토리 내에 svnserve 라는 스크립트를 생성 후,
아래와 같은 내용을 기록한다. 단,
DAEMON_ARGS="-d -r /svn/svnrepo --listen-port 5012"
이 부분만 자신에게 맞게 수정한다.
-------------------------------------------
#! /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 /svn/svnrepo --listen-port 5012"
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
리부트 한 뒤, 아래 명령을 통해서 실행 중인지 확인해보고 실제 svn 브라우저를 통해서도 확인해본다.
netstat -tnl