[NET/jenkins] - server 8080 port 자동 죽이기.

liho·2023년 9월 8일
0

Network

목록 보기
12/24
post-thumbnail

목표 :
1) 개발 server를 구축할 git의 repo에서 build 후 생성될 spring app.jar 파일을 실행한다.
2) 혹여나 개발자의 Local환경에서 8080 port 사용으로 app.jar 실행에서 충돌을 방지하기 위해 Build Steps의 Execute shell 작성한다.

deply script는 반드시 playlist.be에서 실행되어야만 한다.

그 이유

build할 git 연동하기

  • Github Webhook을 이용한 자동 빌드 환경 구축을 위한 세팅

Github Webhook을 이용한 자동 빌드 환경 구축 링크https://github.com/namjunemy/TIL/blob/master/Tools/jenkins_github_hook_trigger_for_gitscm_polling.md

사용중인 8080 port kill

echo "> 8080 port 사용하는 애플리케이션 pid 확인"
#Auto_PID=$ ps -ef | awk '/:8080/ { print $1 }'
Auto_PID=$(ps -ef | awk '/:8080/ { print $2 }')
echo "$Auto_PID"

# 만약 해당 포트를 사용하는 프로세스가 존재하면 종료
if [ ! -z "$Auto_PID" ]; then
    echo "애플리케이션을 종료합니다."

#애플리케이션을 강제로 종료하고, 종료 후 5초 동안 대기
    kill -9 $Auto_PID
    sleep 5

else
# 8080 port의 PID가 비어 있으면 실행
        echo "현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
fi

.jar 파일 자동 실행

echo "> app.jar위치 디렉토리로 이동"
cd $REPOSITORY

echo "> Build 파일 복사"
cp app.jar playlist_be.jar

echo "> 새 애플리케이션 배포"

# JAR_NAME 변수 정의
JAR_NAME="playlist_be.jar"

# build된 JAR 파일을 $REPOSITORY 디렉토리로 복사
cp app.jar "$JAR_NAME"

# 백그라운드 실행
echo "› JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 2>&1 &

완성된 script

#! /bin/bash

echo "> 8080 port kill && Auto build"

REPOSITORY=/var/app

echo "> 8080 port 사용하는 애플리케이션 pid 확인"
#Auto_PID=$ ps -ef | awk '/:8080/ { print $1 }'
Auto_PID=$(ps -ef | awk '/:8080/ { print $2 }')
echo "$Auto_PID"

# 만약 해당 포트를 사용하는 프로세스가 존재하면 종료
if [ ! -z "$Auto_PID" ]; then
    echo "애플리케이션을 종료합니다."

#애플리케이션을 강제로 종료하고, 종료 후 5초 동안 대기
    kill -9 $Auto_PID
    sleep 5

else
# 8080 port의 PID가 비어 있으면 실행
        echo "현재 구동 중인 애플리케이션이 없으므로 종료하지 않습니다."
fi

echo "> app.jar위치 디렉토리로 이동"
cd $REPOSITORY

pwd

echo "> Build 파일 복사"
# 8080dd 포트를 사용하는 프로세스의 PID를 검색
cp app.jar playlist_be.jar

ls -al

echo "> 새 애플리케이션 배포"

# JAR_NAME 변수 정의
JAR_NAME="playlist_be.jar"

# 파일 복사 명령어
cp app.jar "$JAR_NAME"

# 파일 복사 명령어
cp app.jar "$JAR_NAME"


# 백그라운드 실행
echo "› JAR Name: $JAR_NAME"
nohup java -jar $REPOSITORY/$JAR_NAME 1>nohup.log  2>&1 &



# deply script는 반드시 playlist.be에서 실행되어야만 합니다.

:se nonu

참고문헌 : 스프링 부트와 aws로 혼자 구현하는 웹 서비스 - 이동욱

0개의 댓글

Powered by GraphCDN, the GraphQL CDN