본문 바로가기
IT/Spring

2021-10-06-배포 방법

by 봉즙 2023. 2. 28.

layout : post
title : "Jar 배포 방법"

category : Spring

스크립트 작성

#!/bin/bash

PID=`cat ./java.pid`

kill -9 $PID

nohup java -jar -Duser.language=ko -Duser.country=KR -Duser.timezone=Asia/Seoul -Dspring.profiles.active=product ./java.jar > /var/log/java/$GET_DATE.log 2 >&1 & echo $! > ./java.pid

PM2 사용

PM2 설치

npm install -g pm2

PM2 실행 설정 파일 작성

{
  "apps": [{
    "name": "test-api",
    "cwd": ".",
    "args": [
      "-Dspring.profiles.active=product",
      "-Duser.timezone=UTC",
      "-Duser.country=KR",
      "-Duser.language=ko",
      "-jar",
      "/home/ubuntu/java.jar"
    ],
        "watch": [
          "/home/ubuntu/java.jar"
    ],
    "env": {
    },
    "script": "/usr/bin/java",
    "node_args": [],
    "log_date_format": "YYYY-MM-DD HH:mm Z",
    "exec_interpreter": "none",
    "exec_mode": "fork"
  }]
}
pm2 start java.json
pm2 list

사용하면 실행됨을 확인 할 수 있다.

재시작시

pm2 restart java.json

로그의 기본적인 저장 위치는 아래와 같다

cat ~/.pm2/logs/java-out

로그 파일을 라이브러리 설치를 통해 관리 할 수 있다.

pm2 install pm2-logrotate

pm2-logrotate 설정을 변경

pm2 set pm2-logrotate:<param> <value>

[Exmaple]
// force rotate every minute
pm2 set pm2-logrotate:rotateInterval '*/1 * * * *'

// 1KB
pm2 set pm2-logrotate:max_size 1K 

// compress logs when rotated
pm2 set pm2-logrotate:compress true

// 날짜 포맷
pm2 set pm2-logrotate:dateFormat YYYYMMDD_HHmmss

//타임존
pm2 set TZ Asia/Seoul

//파일 갯수
pm2 set pm2-logrotate:retain 1000

// 재시작
pm2 startup

//이후 아래와 같이 커맨드 나오는거 복사해서 입력
sudo env PATH=$PATH:/usr/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

'IT > Spring' 카테고리의 다른 글

2021-11-16-SpringAdmin  (0) 2023.02.28
2021-10-15-SpringCloud  (0) 2023.02.28
2021-09-30-JPA 관계 찾지 못하는 경우  (1) 2023.02.28
2021-09-09-WebClient  (0) 2023.02.28
2021-09-09-JSON Naming  (0) 2023.02.28

댓글