리눅스 svnserve
From CS Wiki
- 상위 문서: SVN
리눅스에서 svn 설치 후 svn 서버를 관리하기 위한 프로그램이자 명령어
옵션[edit | edit source]
svnserve --help로 확인할 수 있다.
$ svnserve --help usage: svnserve [-d | -i | -t | -X] [options] Valid options: -d [--daemon] : daemon mode -i [--inetd] : inetd mode -t [--tunnel] : tunnel mode -X [--listen-once] : listen-once mode (useful for debugging) -r [--root] ARG : root of directory to serve -R [--read-only] : force read only, overriding repository config file --config-file ARG : read configuration from file ARG --listen-port ARG : listen port [mode: daemon, listen-once] --listen-host ARG : listen hostname or IP address [mode: daemon, listen-once] -6 [--prefer-ipv6] : prefer IPv6 when resolving the listen hostname [IPv4 is preferred by default. Using IPv4 and IPv6 at the same time is not supported in daemon mode. Use inetd mode or tunnel mode if you need this.] -c [--compression] ARG : compression level to use for network transmissions [0 .. no compression, 5 .. default, 9 .. maximum compression] -M [--memory-cache-size] ARG : size of the extra in-memory cache in MB used to minimize redundant operations. Default is 128 for threaded and 16 for non- threaded mode. [used for FSFS repositories only] --cache-txdeltas ARG : enable or disable caching of deltas between older revisions. Default is no. [used for FSFS repositories only] --cache-fulltexts ARG : enable or disable caching of file contents Default is yes. [used for FSFS repositories only] -T [--threads] : use threads instead of fork [mode: daemon] --foreground : run in foreground (useful for debugging) [mode: daemon] --log-file ARG : svnserve log file --pid-file ARG : write server process ID to file ARG [mode: daemon, listen-once] --tunnel-user ARG : tunnel username (default is current uid's name) [mode: tunnel] -h [--help] : display this help --version : show program version information -q [--quiet] : no progress (only errors) to stderr
시작 방법[edit | edit source]
가장 일반적인 사용법은 아래와 같다.
svnserve -d -r /home/svn --listen-port 포트
- -d: --daemon: 데몬 방식으로 실행을 시킨다는 의미이다.
- -r: --root [디렉터리]: 루트 디렉터리를 지정하는 옵션이다.
- --listen-port: 실행 포트를 지정한다. 입력하지 않으면 기본 포트인 3690으로 실행된다. 보안을 위해 임의의 포트로 변경하는 것이 권장된다.
종료 방법[edit | edit source]
서비스에 등록하지 않는 이상 별도의 종료 옵션은 제공하지 않는다. 그냥 ps로 pid를 확인하고 kill하는 방법 밖에 없다.
프로세스 확인
$ ps -ef | grep svn | grep -v grep root 22456 22408 0 13:13 pts/3 00:00:00 su svn svn 22463 22456 0 13:13 pts/3 00:00:00 bash svn 23075 1 0 13:18 ? 00:00:00 svnserve -d -r /home/svn
svn과 관련된 여러 프로세스가 보여질 수 있는데, 본인이 실행시킨 svnserve 명령어를 찾아야 한다. 여기선 가장 아래에 있는 프로세스이다.
$ kill 23075
이후 다시 ps -ef 를 통해 정상 종료되었는지 확인한다.
서비스 등록[edit | edit source]
다른 서비스처럼 $service subversion start/stop 으로도 사용할 수 있다. 매번 루트 디렉터리를 설정하고 포트를 지정하고, 종료할 때도 pid를 확인하여 kill을 하는 것 보단 이 방법이 권장된다. 파일 하나만 수정하면 된다.
/etc/sysconfig/svnserve 파일 확인
$ cat /etc/sysconfig/svnserve # OPTIONS is used to pass command-line arguments to svnserve. # # Specify the repository location in -r parameter: OPTIONS="-r /var/svn"
/etc/sysconfig/svnserve 파일 수정 vi 등을 이용해서 저 OPTION 부분을 우리의 루트 디렉터리 및 포트로 수정한다.
OPTIONS="--threads -r /home/svn --listen-port 612345"
이렇게만 해두면 service 명령어를 이용해 제어 가능해진다.