티스토리 뷰

서버는 영원히 부팅된채로 동작할 수 없다. 패치에 따라 혹은 새로 반영해야할 무언가가 있으면 재부팅을 해줘야 한다. 그럼 재부팅을 할때마다 서비스를 수동으로 다 동작시켜야하는가? 물론 아니다. 다 방법이 있다. 윈도우 서버 같은 경우는 '서비스' 에 들어가서 우클릭으로 해당 서비스가 재기동이 될때 자동으로 실행시킬것인지 수동으로 실행시킬것인지 결정을 할 수 있고 리눅스의 경우는 rc.local 파일에서 이와 유사한 행동을 할 수 있다. 이 rc.local을 이용해서 서버 재기동시 자동으로 서비스를 올리는 방법에 대해 알아보겠다. 


rc.local 은 부팅시 서비스를 자동으로 실행해주게끔 해주는 역할을 한다. 부팅시 다른것을 다 하고 이 rc.local이 동작한다고 생각하면 된다. 보통의 경우는 /etc/rc.d/rc.local 이곳에 위치를 하고 있다. 

그럼 일단 rc.local에서 동작을 시킬 Jenkins 기동 스크립트를 하나 만들어보자. 

 

jenkinsRestart.sh

#!/bin/bash
cd /젠킨스설치경로/bin
./jenkins.sh stop
./jenkins.sh start

 

이런식으로 jenkins를 재기동 해주는 스크립트를 작성한다. 

Jenkins같은 경우는 갑자기 종료가 되면 pid 파일이 삭제되지 않기때문에 stop을 한 후 start를 해야 정상실행이 된다. 


그런 다음 vi /etc/rc.d/rc.local 로 들어가서 맨 뒤에 다음을 추가해준다. 

 

rc.local

su -testuser -c '/젠킨스설치경로/bin/jenkinsRestart.sh'

 

su - testuser는 해당 user 계정으로 톰캣을 실행하겠다는 의미이다. 실행시킬 계정에 맞게 변경한다. 끝이다.


이와 같은 방식으로 SVN이나 Sonarqube도 서버 부팅시 자동으로 서비스를 올릴수 있다. 

 

rc.local

su -testuser -c 'svnserve -d -r /SVN설치경로'
su -testuser -c '/Sonarqube설치경로/sonar.sh start'

 

SVN과 Sonarqube도 등록. 일반적으로 우리가 어떤 계정으로 어떤 어플리케이션을 실행을 시키는지만 알면 이와 같은 방식으로 쉽게 등록할 수 있다.

 

재기동을 해보면 서비스가 정상적으로 올라가는지 확인할 수 있고 만약 올라가지 않는다면 rc.local 파일의 권한이 755로 되어 있는지 확인해보자. 

 

끝! 

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31