[리눅스] ps -ef | grep 프로세스 일괄 종료 명령어

최대한·2020년 12월 30일
0
post-thumbnail

리눅스 환경에서 톰캣으로 실행한 프로세스를 shutdown.sh 을 통해 종료를 했는데
서비스에 문제가 있던 탓인지 혹은 다른 이유에서인지 정확히는 모르겠으나 프로세스가 죽지 않고 좀비 상태로 계속해서 쌓여 있었다.

이슈 >

평소에는 아무 생각없이 kill -9 [pid] 를 통해서 프로세스를 일일히 종료시켰겠지만 어느 순간 너무 비효율적이다 (귀찮다) 는 생각이 들었다.

알아본 결과 다음 명령어를 입력할 경우 일괄적으로 ps -ef | grep [regex] 을 통해 출력된
프로세스들을 종료할 수 있다는 것을 알게 되었다.

명령어 >

kill -9 `ps -ef | grep [regex] | grep -v grep | awk '{print $2}'` (bourne shell)
or
kill -9 $(ps -ef | grep [regex] | grep -v grep | awk '{print $2}') (bash)

명령어 실행 과정 >

  • ps -ef | grep [regex] : 실행 중인 모든 프로세스 중 regex 가 포함된 프로세스
  • grep -v grep : grep 문자열이 들어간 프로세스 제외
  • awk '{print $2}' : 파이프를 통해 앞 과정에서 받아온 텍스트 중 2번째(PID)만 출력
  • kill -9 : 파이프를 통해 추출된 pid 들을 프로세스 강제 종료. (default: 15, 정상종료)

결과 >

profile
Awesome Dev!

0개의 댓글