방명록
- [Linux] nohup을 이용한 jar 무중단 배포 및 log 확인 방법2024년 04월 08일 18시 15분 56초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
1. 실행 중인 자바 프로세스 확인
root@(생략):/# ps -ef | grep java root@(생략):/# kill -9 <ProcessID> # 프로세스가 실행중이라면 제거
2. nohup으로 jar 실행(log 생성)
root@(생략):/# nohup java -jar 파일명.jar --spring.profiles.active=dev 2>&1 & # "--spring.profiles.active=dev" dev모드로 실하는 옵션, 상황에 따라 생략해도 됨
3. log 실시간 확인
root@(생략):/# tail -f nohup.out
4. nohup으로 jar 실행(log 생성하지 않음)
root@(생략):/# nohup java -jar 파일명.jar --spring.profiles.active=dev > /dev/null 2>&1 & # "> /dev/null"로 log 생성하지 않음
2024-12-05 추가
서버가 재부팅되었을 때 자동으로 jar를 구동해야하는 경우에는 nohup을 이용한 방식으로는 곤란하다. 아래의 내용은 서버 재부팅 후 자동으로 jar를 구동하는 권장되는 방법이다.
※ 서버 재부팅 후 자동 구동
1. 서비스 파일 생성
sudo nano /etc/systemd/system/myapp.service
- 다음의 내용을 입력한다.
[Unit] Description=My Java Application After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu/backend ExecStart=/usr/bin/java -jar /home/ubuntu/backend/example-0.0.1-SNAPSHOT.jar Restart=always [Install] WantedBy=multi-user.target
- 주요 속성 설명
- User: 실행할 사용자 계정명
- WorkingDirectory: JAR 파일이 있는 디렉토리 경로
- ExecStart: 실행할 명령어(Java 실행 경로와 JAR 파일 경로를 지정). ExecStart=/usr/bin/java -jar 다음에 오는 경로를 자신의 상황에 맞게 지정하면 됨
2. 서비스 활성화 및 시작
sudo systemctl daemon-reload sudo systemctl enable myapp.service sudo systemctl start myapp.service
3. 서비스 상태 확인
sudo systemctl status myapp.service
4. 서비스 중지, 시작, 재시작
sudo systemctl stop myapp.service # 서비스 중지 sudo systemctl start myapp.service # 서비스 시작 sudo systemctl restart myapp.service # 서비스 재시작
728x90반응형'CS > Linux' 카테고리의 다른 글
[Linux] 생활코딩 리눅스 : 인터넷, 네트워크 그리고 서버(IP 확인 방법), 웹 서버, ssh (0) 2024.05.20 [Linux] 생활코딩 리눅스 : 파일 찾기(locate, find), 백그라운드 실행(ctrl+z, jobs, fg), 항상 실행(daemon, service), 정기적 실행(cron) (0) 2024.04.15 [Linux] 생활코딩 리눅스 : 다운로드, 파이프, IO Redirection, shell & kernal, shell script (0) 2024.04.03 [Linux] 생활코딩 리눅스 : 패키지 매니저 (0) 2024.04.02 [Linux] 생활코딩 리눅스 : --help와 man(명령어 매뉴얼 보기) (0) 2024.03.29 다음글이 없습니다.이전글이 없습니다.댓글