본문 바로가기
IT/리눅스

리눅스에서 특정 프로세스를 일괄 종료(스크립트 포함)

by JGSHIN 2025. 2. 15.
SMALL

1. 명령어 설명

먼저 아래 명령어를 사용하면 실행 중인 특정 프로세스(Java 등)를 찾아 종료할 수 있습니다.

 
ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
  • ps -ef : 실행 중인 모든 프로세스를 표시
  • grep java : java 프로세스 필터링
  • grep -v grep : grep java 명령 자체를 필터링에서 제외
  • awk '{print $2}' : PID(프로세스 ID)만 추출
  • xargs kill -9 : 찾은 프로세스를 강제로 종료

2. 일괄 프로세스 종료 스크립트 (kill_process.sh)

위 명령어를 스크립트 파일로 만들어 일괄적으로 프로세스를 종료할 수 있습니다.

🔹 스크립트 생성

 
vi /usr/local/bin/kill_java.sh

📌 스크립트 내용

#!/bin/bash

PROCESS_NAME="java"  # 종료할 프로세스명 (예: java, tomcat 등)
LOG_FILE="/var/log/kill_process.log"  # 로그 파일 경로

# 종료할 프로세스 찾기
PIDS=$(ps -ef | grep $PROCESS_NAME | grep -v grep | awk '{print $2}')

if [ -z "$PIDS" ]; then
    echo "$(date) : No $PROCESS_NAME processes found." | tee -a $LOG_FILE
else
    echo "$(date) : Killing processes: $PIDS" | tee -a $LOG_FILE
    echo $PIDS | xargs kill -9
fi

3. 실행 권한 부여 및 테스트

🔹 실행 권한 부여

 
chmod +x /usr/local/bin/kill_java.sh

🔹 스크립트 실행

 
/usr/local/bin/kill_java.sh

📌 스크립트 실행 후 로그 확인 (/var/log/kill_process.log)

 
cat /var/log/kill_process.log

4. 특정 프로세스(kill 대상) 변경

만약 Java 외 다른 프로세스(Tomcat, Python 등) 도 종료하고 싶다면, PROCESS_NAME="java" 부분을 원하는 프로세스명으로 변경하면 됩니다.

예제

  • Tomcat 종료: PROCESS_NAME="tomcat"
  • MySQL 종료: PROCESS_NAME="mysqld"

5. 자동 실행 설정 (Crontab)

자바 프로세스가 주기적으로 종료되도록 자동화할 수도 있습니다.

 
crontab -e

🔹 예: 매일 새벽 3시에 실행

 
0 3 * * * /usr/local/bin/kill_java.sh

📌 결론

  • kill_java.sh 스크립트를 만들어 자바 프로세스를 자동으로 종료
  • /var/log/kill_process.log 에 기록을 남겨 추적 가능
  • crontab을 활용하면 주기적으로 자동 실행 가능

이제 이 스크립트를 실행하면 Java 프로세스를 일괄 종료할 수 있습니다! 🚀

LIST
📧 이메일 문의
by @ 2025 JGSHIN