Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

pkill은 이름이나 조건에 맞는 프로세스에 시그널을 보냅니다. 기본은 종료를 요청하는 SIGTERM이지만, 이름이 넓게 일치하면 의도하지 않은 여러 프로세스에도 적용될 수 있습니다.

pkill 명령어란?

pgrep와 같은 계열의 선택 조건을 사용하되 결과를 표시하는 대신 대상에 시그널을 보냅니다. 따라서 먼저 동일 조건으로 pgrep -a를 실행해 대상 사용자와 명령줄을 확인하는 것이 안전합니다.

기본 문법

pkill [옵션] 패턴

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man pkill으로 현재 시스템의 설명을 확인하세요.

사용 예제

대상 먼저 확인

프로세스 이름이 정확히 일치하는지 검토합니다.

pgrep -a -x myworker

기본 종료 요청

검토한 이름에 일치하는 프로세스에 SIGTERM을 보냅니다.

pkill -x myworker

사용자로 범위 제한

동명 프로세스가 여러 계정에서 실행된다면 사용자를 함께 지정합니다.

pkill -u alice -x myworker

종료 명령의 결과 확인하기

pkill은 이름 패턴에 맞는 프로세스에 신호를 보냅니다. 성공하더라도 보통 PID 목록을 출력하지 않으므로 먼저 같은 조건으로 pgrep을 실행해 대상을 확인합니다.

pgrep -a -x demo-worker
pkill -TERM -x demo-worker
pgrep -a -x demo-worker

첫 조회에는 시험용 프로세스가 표시될 수 있고, 신호 전송 자체는 출력이 없으며, 마지막 조회는 종료가 끝났다면 빈 출력입니다. 신호를 보냈다고 즉시 종료가 보장되는 것은 아니므로 잠시 후 다시 확인하세요.

-x는 이름 전체가 일치하도록 제한합니다. -f로 명령행 전체를 검색할 때는 패턴이 더 넓게 맞을 수 있으므로 특히 주의하세요. 예제는 자신이 만든 시험 프로세스에만 적용하고 실제 서비스에는 운영 절차를 따릅니다.

주요 옵션과 형식

옵션·형식 설명
-x 이름 전체가 일치하는 프로세스를 선택합니다.
-u 사용자 유효 사용자 ID로 대상을 제한합니다.
-f 전체 명령줄을 대상으로 검사합니다.
-TERM SIGTERM을 명시적으로 보냅니다.
-e 지원되는 구현에서 시그널을 보낸 대상 정보를 표시합니다.

사용할 때 주의할 점

pkill -f는 명령줄의 일부만 맞아도 여러 작업을 선택할 수 있습니다. 서비스를 관리할 때는 가능하면 서비스 관리 도구의 정상 종료 절차를 우선하세요. SIGKILL은 정리 작업을 건너뛰게 하므로 일반적인 첫 선택으로 사용하지 않습니다.

자주 묻는 질문

pkill과 pgrep의 차이는 무엇인가요?

pgrep은 조건에 맞는 PID를 찾고, pkill은 조건에 맞는 프로세스에 실제 시그널을 보냅니다.

공식 문서

옵션의 정확한 동작과 구현별 차이는 pkill 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / whoami - 현재 유효 사용자 이름 확인

Linux / 명령어 / whoami - 현재 유효 사용자 이름 확인

Linux whoami 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / hostnamectl - 호스트 이름과 시스템 정보 확인·변경

Linux / 명령어 / hostnamectl - 호스트 이름과 시스템 정보 확인·변경

Linux hostnamectl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / awk - 필드별 텍스트 분석과 계산

Linux / 명령어 / awk - 필드별 텍스트 분석과 계산

Linux awk 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 네트워크 / IP 확인하는 방법

Linux / 네트워크 / IP 확인하는 방법

Linux에서 ip address와 ip route get으로 인터페이스 주소와 실제 출발지 IP를 확인하는 방법을 설명합니다. 사설·공인 IP, IPv4·IPv6와 컨테이너 환경의 차이도 정리합니다.

Linux / 명령어 / uname - 커널과 시스템 아키텍처 확인

Linux / 명령어 / uname - 커널과 시스템 아키텍처 확인

Linux uname 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / bunzip2 - bzip2 압축 파일 풀기

Linux / 명령어 / bunzip2 - bzip2 압축 파일 풀기

Linux bunzip2 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / tee - 파이프 출력을 화면과 파일에 동시 저장

Linux / 명령어 / tee - 파이프 출력을 화면과 파일에 동시 저장

Linux tee 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / csplit - 행 번호·패턴에서 파일 분할

Linux / 명령어 / csplit - 행 번호·패턴에서 파일 분할

Linux csplit 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / wc - 줄·단어·문자 수 계산

Linux / 명령어 / wc - 줄·단어·문자 수 계산

Linux wc 명령어로 줄·단어·바이트·문자 수를 확인하는 방법을 설명합니다. 개행 기준의 줄 수, -c와 -m 차이, 여러 파일 합계와 안전한 파이프 활용 예제를 정리합니다.

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux / 명령어 / getent - NSS 사용자·그룹·호스트 정보 조회

Linux getent 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.