반응형
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/bin/sh
SERVICE_NAME=HALF-JANG-API
PATH_TO_JAR=/app/ua_api/HALF-JANG-API-1.0.0.jar
PID_PATH_NAME=./HALF-JANG-API.pid
JAVA_OPT="-Xms1024m -Xmx1024m"
PROFILES_ACTIVE=dev
case $1 in
start)
echo "Starting $SERVICE_NAME ..."
if [ ! -f $PID_PATH_NAME ]; then
nohup java -jar -Dspring.profiles.active=$PROFILES_ACTIVE $JAVA_OPT $PATH_TO_JAR &
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."
fi
;;
run)
if [ ! -f $PID_PATH_NAME ]; then
java -jar -Dspring.profiles.active=$PROFILES_ACTIVE $JAVA_OPT $PATH_TO_JAR
else
echo "$SERVICE_NAME is already running ..."
fi
;;
stop)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stoping ..."
kill $PID;
echo "$SERVICE_NAME stopped ..."
rm $PID_PATH_NAME
else
echo "$SERVICE_NAME is not running ..."
fi
;;
restart)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stopping ...";
kill $PID;
echo "$SERVICE_NAME stopped ...";
rm $PID_PATH_NAME
echo "$SERVICE_NAME starting ..."
nohup java -jar -Dspring.profiles.active=$PROFILES_ACTIVE $JAVA_OPT $PATH_TO_JAR &
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is not running ..."
fi
;;
esac
|
젠킨스가 적용되지 않은 서버에서 부트로 개발된 API를 구동시킬 일이 생겼습니다.
오랜만에 쉘을 짜려니 기억이 가물가물...
1개 이상 사용해야되는 값들은 변수로 상단에 선언
- SERVICE_NAME=HALF-JANG-API
- PATH_TO_JAR=/app/ua_api/HALF-JANG-API-1.0.0.jar
- PID_PATH_NAME=./HALF-JANG-API.pid
- JAVA_OPT="-Xms1024m -Xmx1024m"
- PROFILES_ACTIVE=dev
시작, 중지, 재시작
- case $1 in -> case문으로 분기, $1은 쉘 뒤에 입력하는 값(ex. $./run.sh start)
- echo -> 콘솔에 출력
- if [ !-f $PID_PATH_NAME ]; then -> PID 체크(중복실행 방지)
- nohup ~ & -> 백그라운드로 실행, &로 명령어 끝 명시(nohup 명령어를 사용하지 않으면 쉘 명령어 종료 시 프로세스 종료)
- java -jar -Dspring.profiles.active=$PROFILES_ACTIVE $JAVA_OPT $PATH_TO_JAR -> jar 실행, 변수로 환경, 자바옵션, jar경로 지정
- run) -> 정상적으로 실행되지 않을 때 로그를 실시간으로 보기 위함(nohup 명령어 미사용)
- if [ -f $PID_PATH_NAME ]; then -> PID 체크(종료 시)
- kill $PID; -> 프로세스 종료
* 추가
- nohup java -jar -Dspring.profiles.active=prod $JAVA_OPT $PATH_TO_JAR >> $PATH_TO_LOG/hafl_jang.log
- -> logback 설정이 없을 때 위와 같이 로그 출력도 지정 가능
반응형
'- others' 카테고리의 다른 글
[Kafka] zookeeper 및 kafka 설치, Cluster 설정 (0) | 2020.10.27 |
---|---|
[Linux] tar 명령어 tar, tgz(tar.gz) 압축해제 (0) | 2020.10.26 |
[AWS] 서버 생성 및 방화벽 오픈 (0) | 2020.07.18 |
[Git] Git branching model (0) | 2020.06.16 |
[IntelliJ] No tests found for given includes (0) | 2020.06.15 |