728x90
문제 상황
java -jar [애플리케이션 파일 이름.jar]
// 예시
java -jar lotto-0.0.1-SNAPSHOT.jar
원격 서버에 이 명령어로 애플리케이션을 실행시키면 터미널에서 로그를 확인할 수 있지만, 일정 시간 동안 입력이 없으면 자동으로 ssh 접속이 끊기기 때문에
nohup java -jar [빌드된 jar 파일] &
// 예시
nohup java -jar lotto-0.0.1-SNAPSHOT.jar &
나는 이렇게 nohup을 붙여서 파일을 실행시켰었다. 그렇지만 nohup으로 실행시키면 터미널에서 로그를 확인할 수 없었다...!
그렇지만 내가 잘못 알고 있었던 것 !! 다 방법이 있습니다 !!!
nohup 간단한 설명부터 짚고 넘어가자 ❗️
jar 파일을 백그라운드로 실행하는 명령어
nohup [실행하고자 하는 파일명] &
- &
- 프로세스를 실행할 때 백그라운드에서 동작하도록 만드는 명령어
- 백그라운드로 실행한다는 것은 무엇이지?
- 해당 애플리케이션이 터미널 세션에 독립적으로 실행된다는 의미다. 즉, 터미널이나 세션이 종료되어도 애플리케이션이 종료되지 않고 계속 실행되는 상태
- nohup을 붙여서 실행해주면 실행한 경로에 [nohup.out]이라는 log 파일이 생성된다.
- 그렇기 때문에 nohup으로 실행시켜도 충분히 로그를 확인할 수 있다 !
해결 방법
nohup java -jar lotto-0.0.1-SNAPSHOT.jar &
위 명령어로 애플리케이션 파일을 실행시킨 뒤
cat nohup.out
이 명령어로 nohup 파일에 기록되는 로그를 확인할 수 있고,
tail -f nohup.out
이 명령어로 로그 데이터를 실시간으로 확인할 수 있다.
control + s : 멈춤
control + q : 다시 시작
나는 리눅스 환경에서 실행하다보니 파일을 직접 열어보는 것보다 명령어로 로그를 확인하였다 !
☝🏻 참고 명령어
nohup.out 파일명 변경
> 또는 >> 와 같은 리다이렉션을 이용해 다른 파일에 출력할 수 있다.
>은 덮어쓰기 >>은 이어쓰기
// > - 덮어쓰기
$ nohup [실행파일] > [파일] 2>&1 &
// 예시
$ nohup java -jar lotto-0.0.1-SNAPSHOT.jar > application.log 2>&1 &
이렇게 파일 명을 바꿔주었다면 바꾼 파일명으로 확인하면 된다 ~~~!
생각보다 아주 간단하게 해결 완료 !
참조
728x90
'Cloud' 카테고리의 다른 글
[AWS] client_loop: send disconnect: Broken pipe 접속 끊어짐 + 해결 방법 (0) | 2024.11.20 |
---|---|
[AWS] EC2 멈춤, 서버 연결 먹통, CPU 사용률 과부하 해결 (0) | 2024.11.13 |
[AWS] 로컬 시간과 AWS 서버 시간 차이 (0) | 2024.11.12 |
[AWS] 디비버(DBeaver) Public Key Retrieval is not allowed 에러 (1) | 2024.11.12 |