소통하는 개발자 Sean
article thumbnail

- AWS EC2를 Putty로 접속해서 -> 'java -jar 파일이름.jar' 명령어를 통해 원격서버를 실행시켰는데요.

 

  가끔 잘 실행되고 있는지, URL을 통해서 접속해보면 -> 연결을 거부하더라구요..

 

처음에는 스레드 설정을 잘 못해서 서버가 터지거나, 사용자가 이상한 행동을 해서 그런가 의심도 해보았습니다.

그러던중 원인을 구글링을 통해 알아냈는데요!

 

 

* 서버가 종료된 이유는 이렇습니다.

- 노트북으로 작업을 하고, 컴퓨터를 종료하면 (=putty를 끄면) 프로젝트가 종료되면서 => 결과적으로 서버가 종료되더라구요

- 그래서 nobup을 이용하여 무중단으로 서비스를 운영하려고 합니다

- 쉬운 명령어를 통해 가능한데요, 원래 'java -jar 파일이름.jar' 였다면 

$ sudo nohup java -jar 파일이름.jar &  //&은 백그라운드에서 실행시키는 옵션

 

캡처에서는 '&'를 사용하지 않은 명령어입니다.

- 해당 코드를 입력하고 종료를 해주면, nohup.out 파일이 생성이 되는데요

- nohup.out은 서버를 실행시킨 후  log들이 쌓여있는 파일입니다. 

 

* 만약 log를 찍기 싫다면 -> '/dev/null' 을 붙여주시면 됩니다.

$ sudo nohup java -jar 파일이름.jar & > /dev/null

 

 

* 서버를 종료하고 싶다면??

- 만약 'sudo nohup java -jar 파일이름.jar'  명령어를 실행했다면 백그라운드에서 돌고있는것이 아니기 때문에 

- '컨트롤+C' 하면 종료가 되는데요, 하지만 -> '&' 을 붙여서 백그라운드에서 실행되고 있다하면 아래의 방법을 사용해야 합니다.

 

- 프로세스를 종료하기 위해선 -> PID를 알아야하고 -> 그 PID를 종료시키면 됩니다.

 

$ ps -ef | grep 파일이름.jar 
$ kill -9 찾은PID // PID는 사진의 체크박스 위치를 참고하세요

 

 

profile

소통하는 개발자 Sean

@Sean-creative

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!