-
[SPRING BOOT/이클립스] jar 파일로 서버에 배포하기IT/코딩히스토리_서버 2024. 1. 22. 22:59
인텔리제이쓴다면 gradle로 그냥 부트자르 클릭하면 jar파일 만들어짐..
근데 지금 나는 이클립스로 배포할때를 정리할 예정
1) 프로젝트 우클릭 Run As -> Gradle Task ->New configuration
Gradle Tasks 안에있는거 bootjar로 수정
디렉토리 본인 be프로젝트 클릭
그리고 적용하고 Run하면 됨
에러없이 제대로 됐다면
프로젝트의 build> libs 경로에 jar파일이 생성됨
에러 발생하면 console 창보고 해결!
2) 이제 해당 파일을 리눅스 서버에 있는 폴더로 이동 시켜서 실행
scp -r C:\[프로젝트 경로]\build\libs [접속할계정]@[원격접속ip]:/[내가 보낼경로]
그리고
nohup java -jar 내프로젝트.jar > /dev/null 2>&1 &
ps -ef | grep java 으로 잘돌아가고 있는지 확인!
* nohup 과 일반 실행의 차이점
차이점은 주로 프로세스의 수명주기와 터미널 종속성
1. 터미널 종속성
- 일반 실행: 프로세스가 터미널과 직접 연결되어 있습니다.
터미널이 종료되면 프로세스도 함께 종료됩니다.
즉, 터미널 세션이 종료되면 백그라운드에서 실행 중인 프로세스도 함께 종료됩니다.
- nohup 실행: nohup을 사용하면 프로세스가 터미널과 독립적으로 실행됩니다.
터미널이 종료되어도 프로세스는 계속해서 실행됩니다.
2. 출력 및 에러 로그
- 일반 실행
터미널과 연결되어 있으므로 프로세스의 표준 출력(standard output) 및 표준 에러(standard error)는 터미널에 출력됩니다. 터미널 종료 시 출력도 종료됩니다.
- nohup 실행
nohup을 사용하면 표준 출력과 표준 에러를 nohup.out 파일에 리디렉션합니다.
이 파일에는 프로세스의 출력 내용이 기록됩니다.
3. 백그라운드 실행
- 일반 실행
일반적으로 프로세스를 백그라운드에서 실행하려면 명령어 끝에 &를 추가합니다.
그러나 터미널이 종료되면 백그라운드에서 실행 중인 프로세스도 종료됩니다.
- nohup 실행
nohup을 사용하면 백그라운드에서 실행됩니다.
또한 터미널 종속성이 없어 터미널이 종료되어도 계속해서 실행됩니다.
추가)
내가 뒤에 남긴 > /dev/null 2>&1 &은 로그안남기는 조건이다.
nohup java -jar your-application.jar > /dev/null 2>&1 &
여기서 > /dev/null은 표준 출력을 /dev/null로 리디렉션하고,
2>&1은 표준 에러를 표준 출력으로 리디렉션
이렇게 하면 모든 출력이 /dev/null로 가게 되므로 로그가 생성되지 않음
*서버에 배포후 postman으로 간단한 get해서 통신되는지 확인해볼 것
만일 postman도 안된다면 실행시 사용하는 포트가 해당 서버에 열려있는지 확인해볼 것
없으면 포트 추가
sudo ufw allow 8080 //8080 포트를 쓸시
'IT > 코딩히스토리_서버' 카테고리의 다른 글
[리눅스-Ubuntu-APACHE2-REACTJS] 프론트 배포하기/고정IP설정 (2) 2024.01.21