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 / 명령어 / cd - 디렉터리 이동

Linux / 명령어 / cd - 디렉터리 이동

Linux cd 명령어로 절대·상대 경로, 홈과 이전 디렉터리로 이동하는 방법을 설명합니다. 심볼릭 링크 처리, CDPATH, 스크립트와 sudo cd의 한계 및 오류 해결법도 정리합니다.

Linux / 명령어 / find - 조건으로 파일과 디렉터리 검색

Linux / 명령어 / find - 조건으로 파일과 디렉터리 검색

Linux find 명령어로 경로, 이름, 종류, 크기, 시간과 권한 조건을 조합해 파일을 찾는 방법을 설명합니다. 안전한 exec 사용과 삭제 전 검증도 다룹니다.

Linux / 명령어 / top - 프로세스 자원 사용량 실시간 확인

Linux / 명령어 / top - 프로세스 자원 사용량 실시간 확인

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

Linux / 명령어 / nslookup - DNS 이름과 레코드 조회

Linux / 명령어 / nslookup - DNS 이름과 레코드 조회

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

Linux / 명령어 / dnf - RPM 계열에서 패키지·저장소 관리

Linux / 명령어 / dnf - RPM 계열에서 패키지·저장소 관리

Linux dnf 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux / 명령어 / nc - TCP·UDP 연결과 포트 점검

Linux / 명령어 / nc - TCP·UDP 연결과 포트 점검

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

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

Linux 강좌 / PID와 PPID 이해하기 - 프로세스 확인과 관리

PID와 PPID의 의미와 부모·자식 프로세스의 관계를 설명합니다. ps와 pgrep으로 확인하고, 직접 만든 실습 프로세스를 안전하게 종료하는 방법을 익힙니다.

Linux / 명령어 / watch - 명령 결과를 주기적으로 반복 확인

Linux / 명령어 / watch - 명령 결과를 주기적으로 반복 확인

Linux watch 명령어로 명령 결과를 일정 간격으로 반복 확인하는 방법을 설명합니다. -n, -d, -g, -p 옵션과 파이프·따옴표 사용법, 메모리·디스크·프로세스 모니터링 예제를 정리합니다.

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

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

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

실습 폴더에서 파일과 디렉터리를 만들고 복사·이동·삭제해 봅니다. 덮어쓰기와 삭제 전에 경로와 결과를 확인하는 습관도 익힙니다.