Infra/AWS

포트포워딩 및 AWS 백그라운드 실행시키기 (nohup)

민돌v 2021. 9. 18. 15:51

포트 포워딩 (포트 번호 때기)


포트 포워딩 이란 (Port fowarding)

  • http의 기본 포트번호는 디폴트로 80 포트가 설정되어 있다.
  • 그래서 80포트는 굳이 적지 않고 도메인만 입력해도 자동으로 80포트가 붙는다. (숨겨져 있다. naver.com:80 )
  • 주소에 포트번호를 보이고싶지 않다면, 80포트로 들어오는걸 원하는 포트번호로 포워딩을 시켜주면 된다.
  • 이것을 포트 포워딩이라 한다.

 

포트 포워딩 설정 방법 (5000 포트로)

aws 서버 shell 스크립트(bash) 에서 설정한다.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000


 

 SSH 접속을 끊어도 서버 돌아가도록 설정하기 (nohup)

 

git bash(shell)에서 AWS 서버환경에서 작업]

#원격접속을 종료하더라도 돌아가게
nohup python app.py&


#서버 종료하기 (강제 종료)
# 아래 명령어로 미리 pid 값(프로세스 번호)을 본다
ps -ef | grep 'app.py'

# 아래 명령어로 특정 프로세스를 죽인다
kill -9 [pid값]


#다시 켜기
nohup python app.py &

nohup - 성공 상태

강제 종료할때 위에 두개 끄기 - (22943,22952 - 프로세스 번호(pid))


리눅스 PS 명령어

aws 서브를 nohup으로 백그라운드에 실행시키고 있는걸 강제종료하기위해서

ps -ef | grep '파일이름' 을 이용했다.

 

PS -ef의 의미

  • ps 는 실행중인 프로세스 목록과 상태를 보여주고,
  • ps 명령어 옵션으로 -e, -ef, -a 등등이 있다.
    • -e : 커널프로세스를 제외한 모든 프로세스 탐색
    • -f : 풀 포맷(자세하게) 형식으로 프로세스 정보를 보여준다.
  • ps -ef : 전체  다보기

 

grep 옵션

  • grep은 특정 문자열을 파일에서 찾아주는 명령어이다.

 

ps -ef | grep 'app.py' 입력시 결과창

  1. 위에 2개는 실행중인 프로세스를 나타낸다.
  2. 아래 grep --color=auto '파일명' 은 내가 탐색한 파일명에 컬러를 주는 명령문이다.
  3. 백그라운드 실행을 종료시키고 싶다면, kii -9 명령어로 위에 2개 프로세스를 종료시키면 된다.