본문 바로가기

[SPRING]/SPRING

Linux 서버 배포(java 설치 및 서비스로 자동 재실행)

반응형

요즘 node개발을 많이하다보니 pm2로 무중단 서비스를 했었는데
다시 스프링 할 일이 있어 하는김에 다시 정리해봤다.

java 미설치시 환경세팅

  1. 설치할 자바 jdk 파일 준비 or 인터넷 연결 가능 서버일시 wget으로 받아와도됨
  2. 자바 jdk 설치
    /usr/lib/ 하단에 설치했음.
  3. 자바 jdk 환경변수 등록
    vi /etc/profile 최하단 이동 (shift + g)
    export JAVA_HOME=/usr/lib/jdk-11.0.15추가
    (11.0.15 버전을 설치했음)
    수정 완료 파일 저장
    source /etc/profile
  4. Alias 등록
    vi /etc/bashrc 최하단 이동 (shift + g)
alias java="/usr/lib/jdk-11.0.15/bin/java"
alias javac="/usr/lib/jdk-11.0.15/bin/javac"

추가

수정 완료 파일 저장
source /etc/bashrc

서비스 생성

  1. 배포용 jar 실행 명령어 및 옵션 확인
java -jar "${실행할jar파일명}".jar
  1. [개발]해당 jar 파일 자동재시작 스크립트 서비스 생성
    vi /etc/systemd/system/${service name}.service
[Unit]
Description=LotteOcppHttpServer Service
[Service]
WorkingDirectory=/data/procy
ExecStart=/bin/bash -c "exec /usr/lib/jdk-11.0.15/bin/java -jar /data/procy/${실행할jar파일명}.jar"
Type=simple
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
Alias=SpringBoot-Serv.service

Restart=on-failure : 서비스 스크립트 실패시 자동 실행 옵션
RestartSec=10 : 서비스 스크립트 실패시 10초뒤 자동 실행 옵션

  • 서비스 등록
    systemctl daemon-reload
  • 서비스 시작
    systemctl start "${service name}.service"
  • 서비스 상태 확인
    systemctl status "${service name}.service"
  • 프로세스 확인
    ps -ef | grep "${실행할jar파일명}"
  • 프로세스 킬
    kill -9 "java -jar ${실행할jar파일명} 인 프로세스의 pid(2번째 항목)"
  • 재실행 되었는지 확인
    ps -ef | grep "${실행할jar파일명}"
반응형