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 관련 공식 문서에서 확인할 수 있습니다.









