[AWS] 6. 종료 프로세스 만들기

편준민's avatar
Jul 14, 2025
[AWS] 6. 종료 프로세스 만들기

1️⃣ 프로세스 만드는 이유

 
Spring Boot 애플리케이션이나 Java 서버를 실행한 뒤 종료할 일이 자주 생긴다.
그때마다 ps -ef로 프로세스 목록을 확인하고, grep으로 JAR 이름을 검색한 후, PID를 복사해서 kill 하는 방식은 매우 번거롭고 비효율적이다.
따라서 이 과정을 자동화해서 스크립트 하나로 서버를 종료할 수 있게 만드는 것이 좋다.

2️⃣ pgrep

기존 방식에서는 다음처럼 여러 명령어를 조합해야 했다. ps -ef 명령어를 사용하게 되면 파이프라인(|)grep 필터와 awk 등등 여러 명령어를 사용하여 PID를 찾아야한다.
ps -ef | grep myapp.jar | grep -v grep | awk '{print $2}'
이 과정을 단순하게 대체해주는 명령어가 pgrep이다.
이 과정을 생략해주는 명령어인 pgrep를 사용하면 바로 PID를 찾을 수 있다.
pgrep은 지정한 프로세스 이름(= 실행 파일 이름)을 찾아서 PID만 출력해준다. 아래의 옵션을 이용하여 정확하게 내가 찾고자 하는 PID만 찾을 수 있다.
  • f: 프로세스 이름이 아니라 전체 명령어 줄을 대상으로 검색함
notion image

“전체 명령 줄"이란?

우리가 터미널에 입력한 명령 전체를 말한다. 예를 들어, 어떤 프로그램을 이렇게 실행했다면
java -jar myapp.jar
여기서 "전체 명령 줄"은 이 전체 문장이다.
java -jar *.jar

pgrep 명령어

기본적으로 pgrep은 맨 앞에 있는 실행 파일 이름만 찾는다. 예시를 들어보겠다.
java -jar *.jar
pgrep은 여기서 java만 보고 찾는다. 그래서 아래처럼 하면 java 프로세스 전체가 나와버려서어떤 JAR 파일을 실행 중인지 구분이 안 돼요.
pgrep java

pgrep -f는?

  • f 옵션을 주면 pgrep전체 명령어 줄을 다 본다. 즉, java -jar *.jar 전체를 보고 *.jar가 포함돼 있는지 판단해요!
pgrep -f *.jar
이렇게 하면 정확하게 내가 실행한 *.jar을 실행한 프로세스의 PID를 찾을 수 있다.

3️⃣ 종료 스크립트 작성

1. 스크립트 파일 생성

vi spring-stop.sh
vi 명령어로 spring-stop.sh 파일을 생성하고 편집기로 들어갑니다.
리눅스에서는 파일 확장자가 필수는 아니지만, .sh 확장자를 붙이면 쉘 스크립트 파일임을 쉽게 구분할 수 있어 가독성에 좋습니다.

2. 스크립트 내용 작성

echo "Springboot Stop..." Spring_PID=$(pgrep -f .jar) echo $Spring_PID kill -9 $Spring_PID
해당 스크립트 내용 설명
  • echo "Springboot Stop..."
    • → 표준 출력으로 메시지를 출력합니다. 스크립트가 실행 중임을 알릴 수 있습니다.
  • Spring_PID=$(pgrep -f .jar)
    • → 실행 중인 .jar 프로세스의 PID를 찾아 변수 Spring_PID에 저장합니다.
      pgrep -f전체 명령어 문자열을 기준으로 검색합니다.
      .jar 외에도 정확한 JAR 파일명을 적는 것이 더 안전합니다 (예: myapp-1.0.jar).
  • echo $Spring_PID
    • → 변수의 값을 출력합니다. $를 반드시 붙여야 변수의 값이 출력됩니다.
  • kill -9 $Spring_PID
    • → 해당 PID를 강제로 종료합니다. -9는 강제 종료(SIGKILL)를 의미합니다.
참고: kill -9은 무조건 프로세스를 죽이기 때문에, 필요한 경우 kill -15 (정상 종료)도 고려해볼 수 있습니다.

4️⃣ 실행 권한 부여

1. 현재 권한 확인

ls -l spring-stop.sh
실행 권한이 없다면, 다음과 사진 처럼이 나옵니다. rw-rw-r-- 1 ubuntu ubuntu 57 Jun 13 13:00 spring-stop.sh
notion image

2. 실행 권한 부여

chmod u+x spring-stop.sh
  • chmod는 권한을 변경하는 명령어입니다.
  • u+x는 사용자(user)에게 실행 권한(x)을 추가합니다.
notion image
이후에는 다음 명령어로 스크립트를 실행할 수 있습니다:
/spring-stop.sh
이 명령을 입력하면:
  • “Springboot Stop…” 메시지가 출력되고,
  • PID가 표시되며,
  • 해당 프로세스가 강제로 종료됩니다.
notion image
 
Share article

YunSeolAn