Infra/AWS

AWS EC2 애플리케이션 프로세스 유지하기

제우제우 2024. 8. 25. 02:12

현재 문제점 

1. 터미널창을 닫으면 애플리케이션 프로세스 또한 종료 

2. 다른 작업이 불가능 

문제점 해결하기 

nohup?

  • nohup"no hang up"의 약자로, 사용자가 로그아웃해도 백그라운드에서 프로세스를 계속 실행하도록 하는 명령어
  • 일반적으로 SSH 세션으로 서버에 접속해서 작업을 할 때, 세션이 종료되면 그와 연결된 모든 프로세스도 함께 종료된다.  nohup은 이러한 상황에서 유용
  • 로그아웃 후에도 계속 실행: nohup을 사용하면 사용자가 로그아웃하거나 터미널 세션이 닫혀도 지정된 명령이 계속 실행
  • 출력 리디렉션: nohup 명령어는 표준 출력(stdout)과 표준 에러(stderr)을 기본적으로 nohup.out 파일로 리디렉션한다. 이 파일은 명령어가 실행된 디렉터리 또는 명령어로 지정된 경로에 생성

nohup.out 파일

  • nohup.outnohup 명령어가 실행될 때 표준 출력과 표준 에러를 저장하는 기본 파일
  • cat nohup.out 명령어를 사용하여 파일의 내용을 볼 수 있다. 이 명령어는 nohup.out 파일의 내용을 표준 출력(stdout)으로 출력
 nohup java -jar jeulog-0.0.1-SNAPSHOT.jar

 

이렇게 nohup.out 이라는 파일이 생긴다.

cat nohup.out

 

tail nohup.out

 

파일의 마지막 부분을 출력 

tail -f nohup.out

 

nohup.out 파일의 마지막 부분이 화면에 출력

파일에 새로운 내용이 추가될 때마다 자동으로 그 내용을 업데이트하여 보여준다. ( 실시간 로그 모니터링 )

 

이제 터미널을 종료해도 정상적으로 애플리케이션 프로세스가 돌아간다. 

 

 

ps: "process status"의 약자로, 현재 실행 중인 프로세스에 대한 정보를 출력

 

ps -a: 모든 사용자의 프로세스를 포함하여 터미널과 관련된 프로세스를 나열

 

ps aux

  • ps aux는 시스템의 모든 프로세스를 자세히 나열한다.
  • a: 터미널에 관계없이 모든 프로세스를 표시
  • u: 사용자 정보를 포함하여 프로세스 정보를 표시
  • x: 터미널에 제어되지 않는 프로세스도 포함하여 표시

 

ps aux | grep java

ps aux | grep java 명령어는 ps aux 명령어의 출력을 grep 명령어를 사용하여 필터링

이 명령어는 java라는 문자열이 포함된 프로세스만 표시

 

kill 2566

tail -f nohup.out을 하고 있던 터미널에서 정상적으로 Shutdown completed을 보여주고 있다. 

 

 

애플리케이션 띄우고 다른 작업하기 

nohup java -jar jeulog-0.0.1-SNAPSHOT.jar &

 

netstat 

  • netstat 명령어는 네트워크 상태를 모니터링하고, 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등 네트워크 관련 정보를 표시하는 도구
  • netstat 명령어는 네트워크 디버깅과 트러블슈팅을 위한 중요한 도구
  • 기본적으로 실행하면, 현재 시스템의 네트워크 연결 정보와 소켓 정보를 보여준다.

 

netstat -lntp

  • netstat -lntp는 네트워크 연결의 특정 세부 사항을 표시하기 위해 여러 옵션을 조합한 명령어
  • -l: --listening의 약자로, 현재 수신 대기 중인 소켓(서버 소켓)을 표시한다. 즉, 서버가 클라이언트의 연결을 기다리고 있는 포트를 보여준다.
  • -n: --numeric의 약자로, 호스트 이름을 숫자 IP 주소로 표시한다. DNS 조회를 하지 않고 IP 주소를 직접 표시하여 결과를 빠르게 제공
  • -t: --tcp의 약자로, TCP 연결만 표시합니다. UDP 연결은 제외
  • -p: --programs의 약자로, 각 소켓에 관련된 프로세스 ID와 프로세스 이름을 표시한다. 이 옵션을 사용하면 어떤 프로세스가 특정 포트를 사용하는지 확인할 수 있다.

 

'Infra > AWS' 카테고리의 다른 글

AWS 고정 아이피 추가하기  (0) 2024.08.25
[AWS] EC2 애플리케이션 띄우기  (0) 2024.08.24