특정 프로세스 검색 및 일괄 삭제

특정 프로세스 검색 및 일괄 삭제

간간히 특정 프로세스이름을 가지는 프로세스를 일괄적으로 정리하고 싶을때가 있다.
여기서 특정 프로세스 검색 및 일괄 삭제를 위한 여러 명령어를 연결하여 일관적으로 정리 할 수 있는 방법을 알아보자.

kill

우선 프로세스를 정리하는 명령어는 kill이다.

kill -9 <프로세스ID>

프로세스는 죽이는 -9 시그널을 PID(프로세스ID) 에 보내면 프로세스가 삭제 되는 구조이다.
kill 명령은 여러 프로세스도 한꺼번에 삭제 할 수 있다.

kill -9 <PID1> <PID2> <PID3> ...

위 형식으로 kill 명령어 뒤에 PID를 공백 구분으로 나열하면 한꺼번에 정리 할 수 있다.

kill 명령어에 사용할 여러 PID는 어떻게 구할 수 있을까?
ps 라는 명령어를 사용하면 현재 실행 중인 프로세스 목록을 얻을 수 있다.

ps -ef

위 화면은 ps -ef 실행하여 얻은 화면이다.

특정 프로세스 검색 및 일괄 삭제
프로세스 목록을 얻는 ps -ef



목록의 첫 열은 사용자ID, 그 다음 열은 PID 이다. PID는 프로세스의 고유ID값을 뜻한다.
위의 프로세스 목록 중에 프로세스 실행 명령 중에 docker 라는 문자열이 들어간 프로세스 목록만 뽑으려 한다.

ps -ef | grep 'docker'

위 명령 형식은 전체 프로세스 목록 중에 docker 명령어가 들어간 프로세스 목록으로 필터링 된 결과 값을 얻을 수 있다.  원하는 명령어를 필터링 한 목록까지 얻었다.

ps_docker 설치
ps -ef | grep docker

이제, 이 목록 중에 PID값만 추출하려면 어떻게 해야 할까?
프로세스 목록의 2번째 열이 PID라 하였다. 2번째 열만 추출 하려면 awk 명령어를 사용한다.

ps -ef | grep 'docker' | awk '{print $2}'

위 숫자들은 프로세스 목록의 2열 PID 만 추출한 결과 이다.

이 PID 목록은 프로세스 정리를 위해 마지막으로 필터링 된 값이므로 이 목록을 kill로 연결 시키는 명령어로 완성하면 프로세스를 일괄 정리 할 수 있다.
프로세스를 정리하는 명령어는 처음 정리 한 바와 같이 아래와 같다.

kill -9 `<PID 목록 추출 명령어>`

쉘 명령어에서 키보드 1 자판 왼쪽에 있는 `(따옴표)로 싸게 되면 명령어 실행 한 결과물을 취할 수 있다.  앞서 추가 해 왔던 PID목록 추출 명령어까지 포함한 완성된 명령어는 다음과 같다.

kill -9 `ps -ef | grep 'docker' | awk '{print $2}'`

위와 같이 완성된 명령어는 docker라는 명령어를 포함한 모든 프로세스를 정리하는 명령어이다.

특정 프로세스 검색 및 일괄 삭제 에 대해 알아보았다

자주 사용되는 명령어 조합이니 잘 기억 해두시기 바랍니다.

Leave a Comment