본문 바로가기
프로젝트/Recipository

[Dev] 23.05.01. jar file 실행 체크 / port forwarding 설정 체크

by 규글 2023. 5. 1.

jar file 실행 체크[각주:1]

 필자는 build한 jar file을 실행하고 인스턴스에서 탈출할 것이기 때문에 background에 실행시켜둔 뒤 나와야 한다. 그냥 단순하게 실행시켜두었다가 종료하는 것은 ctrl + c로 가능한데, background에 실행시킨다면 어떤 방식으로 종료해야 할까?

 

ps -ef | grep jar

 ps는 process의 상태를 표시하고 싶을 때 사용한다. 옵션 중에 -e는 현재 활성화된 프로세스를 출력에 포함하고, -f는 전체 목록을 의미하며 USER, PID, PPID, STIME, DEVICE, TIME 및 FUNCTION 필드가 출력에 포함한다.[각주:2]

 grep은 그 중에서도 특정 패턴과 매치되는 결과물들만을 골라 보여준다.

 결과적으로 위 명령어는 실행되는 목록 중에 jar 가 포함된 프로세스만을 골라 보겠다는 의미이다.

 

kill PID

 그렇게 실행되는 프로세스 중에 종료하고 싶은 것이 있다면 kill 명령어를 사용한다. 위 이미지에서 두 번째 열에 있는 것이 PID인데, kill 명령어 다음에 작성하여 PID에 해당하는 프로세스를 죽일 수 있다.

 

port forwarding 체크[각주:3]

 Port forwarding에 대하여 작성한 첫 게시글에서는 port forwarding을 설정하기 위한 명령어만을 언급했다.[각주:4] 그러면서도 추가한 내용을 지우기 위해서는 -A 옵션을 단순히 -D로 수정해서 제거할 수 있다고 했다. 하지만 아무런 정보가 없는 상태에서 port forwarding 설정 정보를 보고 싶다면 어떻게 해야할까?

 

# Port forwarding 80 to 8080
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

# Port forwarding setting check
sudo iptables -t nat -L --line-numbers

 사용했던 명령어다. 옵션이 조금 달라졌는데 어떤 내용을 볼 수 있는지 살펴보자.

 

 iptables의 L 옵션은 ip와 port 등을 변환하는 List를 가져온다고 생각하면 될 것 같다. --line-numbers 옵션이 있는 경우에는 각 설정에 num column이 추가되어 표기된다.

 

# Delete port forwarding 80 to 8080
sudo iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

sudo iptables -t nat -D PREROUTING 2

 설정을 지우기 위해서는 설정을 추가할 때의 A옵션을 D로 바꿔주는 것도 가능하지만, 두 번째 보이는 것처럼 num column의 숫자를 작성하는 것도 가능하다.

 

 이런 Port forwarding 설정은 EC2 인스턴스를 재부팅하면 사라진다. 실제로 밤에 https 연결을 위해 설정을 이미 마쳤으나, 밤 사이 CPU 사용률이 하늘을 찌르며 문제가 생기는 바람에 재부팅을 했기 때문에 설정이 사라졌었다. 이와 관련하여 한 블로그에서 iptables-persistent package의 사용을 권하고 있다.[각주:5]

 필자는 지난 게시글에서 EC2 인스턴스에 swap space 설정을 해준 상태이다. 앞으로 사흘은 작업을 못할 것인데, 서버를 열어두고 다녀온 사이에 CPU가 또 하늘을 찔러 인스턴스가 멈춘 상태여서 다시 재부팅을 하게 된다면 그때 package를 설치해보는 것으로 하고 이번 게시글은 이만 마치겠다.

 

Reference

댓글