어느날 갑자기 Centos 5.2에 설치된 subversion 저장소에 접근시 다음과 같은 오류가 발생했습니다.
ps ax를 살펴봤더니 svnserve도 실행되어 있었습니다. 이런 저런 경우를 검색해보고 테스트해보다가 혹시 경로가 문제인가 하는 의심이 들었습니다. 저장소 서버가 최근에 재부팅된 적이 있었기 때문이죠..
/home/svn/repos 밑에 저장소들이 있었는데 svnserve -d -r /home으로 실행되어 있더군요. 이것을 repos 경로로 바꿔서 다시 실행했습니다.
잘 실행됩니다..
하지만 해결된 것은 아니죠.. 자동 실행 되는 옵션이 잘못되어 있다는 뜻이니까요.
어떻게 자동 실행되었는지 모르겠지만 설정 파일이 없었습니다..
jmnote님의 이 글에 따르면 패키지로 설치해도 자동 실행 설정 파일이 없다고 나옵니다.
내가 설치한 svn 서버도 아니고 회사에서 쓰던 소스 서버인데..
어쨌든 만약을 위해서 지정을 해놓습니다.
svnbook을 참조하면 지정할 수 있는 옵션을 파악할 수 있습니다. svnserve를 실행하는 옵션입니다. chkconfig에 등록하면 시스템 시작시에 실행되므로 -d 옵션은 굳이 주지 않아도 될 듯 하고 위에 언급된 jmnote 님 글에서 지정한 옵션에도 저장소 경로(--root)와 스레드(--threads) 옵션만 지정한 것을 알 수 있습니다. 접속 포트, 메모리 캐시 크기, 터널링 모드 등도 지정할 수 있는 것 같습니다.
여기에서는 jmnote 님의 글 내용을 따라갑니다....
라고는 했지만 실행이 안됬습니다. chkconfig에 등록도 안됩니다.. 여기저기 대충 찾아보니까 /etc/init.d 디렉토리에 파일이 작성되어 있어야 chkconfig으로 on/off를 시킬 수 있는 것 같습니다.. 짜증이 마구 솟구치는 가운데 /etc/init.d 목록을 봤더니 subversion이 있었습니다. 그래서 chkconfig --list subversion 명령을 내려봤더니...
다들 서버를 쓰고 있기 때문에 테스트는 못해보고.. 과감히 서버를 껏다 켜버리고 실행된 상황을 봤지만 /etc/init.d/subversion에 지정된 내용이 실행되고 있지 않았습니다. 부팅시 실행되던 범인은 /etc/rc.local에 떡하니 자리잡은 녀석이었습니다. 요녀석을 제거하고 나서는 chkconfig을 지원하지 못한다는 메시지가 문제였는데 이 역시 검색으로 해결..
시스템의 /etc/init.d/subversion 스크립트에는 chkconfig: 항목 안에 숫자 앞에 '-' 가 추가되어 있었습니다. 이 부분을 제거하니 또 다른 메시지를 보여줍니다.
# cd /etc/init.d
# ln -s subversion svn
# chkconfig --list svn svn 서비스는 chkconfig를 지원하지만 어떠한 런레벨에도 등록되지 않았습니다 ( 'chkconfig --add svn' 실행)