일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MYSQL
- 브루트포스 알고리즘
- 알고리즘
- 그래프 이론
- Vue
- 정보처리기사
- Spring Security
- springboot
- 소수 판정
- 수학
- 깊이 우선 탐색
- SWEA
- 스택
- 구현
- 자료 구조
- DB
- 백준
- n과 m
- 문자열
- 그래프 탐색
- 프로젝트
- 다이나믹 프로그래밍
- JPA
- 프로그래머스
- dfs
- 재귀
- 배포
- 너비 우선 탐색
- 정수론
- 백트래킹
Archives
- Today
- Total
영원히 남는 기록, 재밌게 쓰자
프로젝트 배포 해보기 (5) 서버 스크립트 생성해서 백그라운드로 서버 실행하기 본문
728x90
반응형
이전 글에서 인스턴스 서버를 로컬의 mysql 워크벤치와 연동하여 접속하는 것 까지 해보았다.
https://happy-youngjae.tistory.com/51
프로젝트 배포해보기 (4) aws 인스턴스(우분투 서버)의 계정 로컬의 MySQL Workbench 연동해보기
배포 이후 db를 다룰 일이 있을 때 마다 계속 SSH 접속을 하고 우분투 서버의 DB로 접속을 계속 한다면 조금 귀찮거나 힘들 수 있다.그래서 로컬 컴퓨터 즉, 자신의 컴퓨터에서 우분투 서버의 사용
happy-youngjae.tistory.com
이번 글에서는 서버 스크립트 이용해서 서버를 백그라운드로 실행하여 프로그램이나 프로세스가 현재 프로세스 즉, 터미널 창을 닫더라도 서버 프로세스가 실행 되도록 설정해줄 수 있다.
프로젝트 시작 스크립트와 중단 스크립트를 만들고 적용을 해보았다.
스크립트 생성 후 설정
프로젝트 디렉토리로 이동 후
1) nano 편집기를 사용하여 스크립트 파일 생성
nano start.sh
1-1) 스크립트에 다음 내용 입력
#!/bin/bash
JAR=studentmanage-0.0.1-SNAPSHOT.jar
LOG=/home/ubuntu/timenglish/timenglish.log
nohup java -jar $JAR > $LOG 2>&1 &
- nohup는 프로세스를 실행한 터미널의 연결이 끊어지더라도 프로세스가 지속적으로 동작할 수 있게 해주는 명령어.
- java –jar $JAR는 JAR 변수에 저장된 JAR 파일을 실행하라는 명령어.
- > $LOG는 자바로 실행된 프로세스의 출력을 로그 파일에 저장하라는 의미이다.
- 2>&1은 오류 출력(stderr)을 일반 출력(stdout)으로 전달하라는 의미이다. 따라서 일반 로그와 오류 로그가 모두 timenglish.log 파일에 저장될 것이다. 그리고 마지막의 & 기호는 백그라운드로 명령을 실행하라는 의미이다.
- 오류 출력을 지정하지 않으면 오류의 내용이 timenglish.log 파일에 저장되지 않는다.
<ctrl+o>를 누른 후, 화면 아래에 ‘File Name to Write: ’이라는 프롬프트가 등장하면 enter를 눌러 start.sh 파일을 저장.
그다음 <ctrl+x>를 눌러서 편집기를 종료.
2) 실행권한 부여하기
chmod +x start.sh
위 권한 설정을 하면 ./start.sh 만 입력해도 실행될 수 있도록 실행권한을 부여
3) 중지 스크립트 생성
nano stop.sh
3-1) 중지 스크립트 내용 입력
#!/bin/bash
TIMENGLISH_PID=$(ps -ef | grep java | grep studentmanage | awk '{print $2}')
if [ -z "$TIMENGLISH_PID" ];
then
echo "TIMENGLISH is not running"
else
kill -9 $TIMENGLISH_PID
echo "TIMENGLISH stopped."
fi
TIMENGLISH_PID 라는 변수에 등호 오른쪽 결과를 할당한다.
- ps -ef : 현재 실행 중인 프로세스 출력
- grep java, grep studentmanage : 파이프라인 옵션으로 프로세스에 해당 내용이 포함된 프로세스를 필터링하는 역할
- awk '{print $2}' : 출력 문자열의 2번째 항목인 PID만 뽑아서 출력한다는 의미
4) 실행권한 부여하기
chmod +x stop.sh
시작 스크립트와 동일하게 권한을 부여해준다.
결과
정상적으로 잘 동작하고 종료되는 것을 확인할 수 있었다.
스크립트를 활용해서 백그라운드로 설정하는 방법을 경험할 수 있는 좋은 시간이었다.
728x90
반응형
'인프라' 카테고리의 다른 글
프로젝트 배포 해보기 (7) 로그 파일 관리하기 (0) | 2024.05.21 |
---|---|
프로젝트 배포 해보기 (6) 웹 서비스 80번 포트로 변경하고 접속해보기 (0) | 2024.05.18 |
프로젝트 배포해보기 (4) aws 인스턴스(우분투 서버)의 계정 로컬의 MySQL Workbench 연동해보기 (0) | 2024.05.16 |
프로젝트 배포해보기 (3) 생성한 aws 서버에 jar 파일 업로드, DB 설치 및 연동 후 서버 접속해보기 (0) | 2024.05.16 |
프로젝트 배포해보기 (2) AWS lightsail로 서버 시작하기 (0) | 2024.05.16 |