#6 : 서버 스크립트
이전 장에서 아래 명령을 통해 서비스를 실행했다.
ubuntu@jumpto:~/sbb$ java -jar sbb-0.0.1-SNAPSHOT.jar
하지만 위와 같이 단순히 실행하면, 터미널을 종료하면 서비스도 중단된다. 이를 방지하기 위해서는 백그라운드로 실행해야 한다.
01. SBB 시작 스크립트
- 서비스를 실행하는 시작 스크립트 작성
(서버에서는 STS 와 같은 편집기 사용이 불가하므로 nano 편집기 사용)
ubuntu@jumpto:~$ cd sbb
ubuntu@jumpto:~/sbb$ nano start.sh
* 화면이 나타나면 마우스 사용이 불가하게 되고 화살표로 커서를 움직여 편집 가능하다.
* 화면 아래의 단축키에서 ^는 ctrl을 의미한다.
- nano 화면에서 다음 내용을 입력하고 ctrl+o를 눌러 start.sh 파일을 저장 후 ctrl+x를 눌러 종료하자.
#!/bin/bash
JAR=sbb-0.0.1-SNAPSHOT.jar
LOG=/home/ubuntu/sbb/sbb.log
nohup java -jar $JAR > $LOG 2>&1 &
* JAR는 배포파일명, LOG는 로그를 출력할 파일명이다. (로그 파일에는 STS를 실행 시 콘솔에 표시되는 내용이 출력)
* nohup : 프로세스를 실행한 터미널의 연결이 끊어지더라도 프로세스가 지속적으로 동작할 수 있게 해주는 명령어
* > $LOG : 프로세스의 출력을 로그 파일에 저장하라는 의미
* 2>&1 : 오류(stderr) 출력을 일반(stdout) 출력으로 전달하라는 의미, 일반로그와 오류로그 모두 sbb.log 파일에 저장
* & : 백그라운드 실행 명령어
- 스크립트명만 입력하더라고 실행될 수 있게 실행권한 부여
ubuntu@jumpto:~/sbb$ chmod +x start.sh
- 서버 실행
ubuntu@jumpto:~/sbb$ ./start.sh
ubuntu@jumpto:~/sbb$
02. SBB 중지 스크립트
- 실행 중인 SBB서비스를 중지하기 위한 stop.sh 스크립트
#!/bin/bash
SBB_PID=$(ps -ef | grep java | grep sbb | awk '{print $2}')
if [ -z "$SBB_PID" ];
then
echo "SBB is not running"
else
kill -9 $SBB_PID
echo "SBB stopped."
fi
* SBB_PID : 현재 실행 중인 프로세스의 아이디
* if 문 : 만약 실행 중인 SBB 서비스의 프로세스가 없다면 then 절의 문자열을, 있다면 else 절에서 프로세스를 강제 종료한다.
- 스크립트명으로 실행하는 권한 부여
ubuntu@jumpto:~/sbb$ chmod +x stop.sh
- 서비스 중지
ubuntu@jumpto:~/sbb$ ./stop.sh
03. SBB 서비스 재시작
만약 SBB 프로그램이 변경되었다면 jar파일 교체 후 stop.sh와 start.sh를 순서대로 실행한다.
(jar파일의 이름이 변경된 경우 start.sh 내용도 수정해준다.)
ubuntu@jumpto:~/sbb$ ./stop.sh
ubuntu@jumpto:~/sbb$ ./start.sh'T-I-L > [책] 요약&정리' 카테고리의 다른 글
| [점프 투 스프링부트] 3장 SBB 서비스 개발(NGINX) - 2023. 09. 19. (0) | 2023.09.19 |
|---|---|
| [점프 투 스프링부트] 3장 SBB 서비스 개발(개발과 서버 환경 분리) - 2023. 09. 15. (0) | 2023.09.15 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(추가기능, 서버, AWS 라이트세일, 서버 접속 설정, 서버 접속 프로그램, SBB 오픈) - 2023. 09. 13. (0) | 2023.09.13 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(검색) - 2023. 09. 12. (0) | 2023.09.12 |
| [점프 투 스프링부트] 3장 SBB 서비스 개발(마크다운) - 2023. 09. 11. (0) | 2023.09.11 |
