ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 포트를 쓸시

Designed by Tistory.