Linux / 명령어 / kill - PID에 시그널 보내기
kill은 지정한 프로세스 ID(PID) 또는 셸 작업에 시그널을 보냅니다. 이름과 달리 기본 동작은 강제 종료가 아니라 SIGTERM을 통한 종료 요청입니다.
kill 명령어란?
Bash에서는 kill이 셸 내장 명령으로 제공됩니다. 신호를 받은 프로세스가 어떻게 반응할지는 시그널 종류와 프로그램 구현에 달려 있습니다. 종료가 필요하면 먼저 정상 종료 절차와 SIGTERM을 시도하세요.
기본 문법
kill [-시그널] PID ...
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. help kill으로 현재 시스템의 설명을 확인하세요.
사용 예제
PID 확인
프로세스가 여전히 의도한 작업인지 먼저 확인합니다.
ps -p 1234 -o pid,user,stat,cmd
정상 종료 요청
기본 SIGTERM을 명시적으로 보냅니다.
kill -TERM 1234
사용 가능한 시그널 목록
현재 셸 구현의 시그널 이름을 확인합니다.
kill -l
PID를 확인하고 신호 보내기
kill은 이름이 아니라 PID를 대상으로 신호를 보냅니다. 다음의 12345는 설명용 번호이므로 실제로 실행할 때는 먼저 ps로 확인한 자신의 시험 프로세스 PID로 바꾸세요.
ps -p 12345 -o pid,stat,comm kill -TERM 12345 ps -p 12345 -o pid,stat,comm
첫 조회에는 대상이 표시되고, kill 성공 시 보통 출력이 없습니다. 정상 종료가 끝나면 마지막 조회는 헤더만 보이거나 대상이 없다는 결과가 나옵니다. 이는 예시 흐름이며 실제 종료까지 걸리는 시간은 프로세스마다 다릅니다.
SIGTERM은 정리할 기회를 주는 기본 종료 요청입니다. SIGKILL은 정리 작업을 건너뛰므로 마지막 수단으로 사용하세요. PID는 재사용될 수 있어 오래된 번호를 그대로 믿으면 다른 프로세스에 신호를 보낼 위험이 있습니다.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-TERM |
프로세스에 정상 종료를 요청합니다. |
-INT |
터미널 인터럽트에 해당하는 신호를 보냅니다. |
-HUP |
프로그램별로 다르게 해석되는 hangup 신호를 보냅니다. |
-KILL |
즉시 종료를 강제합니다. 정리 작업을 건너뛸 수 있습니다. |
-0 |
실제 종료 신호 없이 존재·권한을 점검합니다. |
사용할 때 주의할 점
PID는 재사용될 수 있으므로 오래전에 기록한 PID를 그대로 사용하지 마세요. kill -0의 실패는 프로세스 부재뿐 아니라 권한 부족일 수도 있습니다. kill -KILL은 최후의 수단이며 데이터 정리나 파일 쓰기가 중단될 수 있습니다.
자주 묻는 질문
kill을 실행했는데 프로세스가 남아 있으면?
SIGTERM을 무시하거나 종료 정리 중일 수 있습니다. 상태와 로그를 확인하고 정상적인 서비스 종료 방법을 먼저 검토하세요.
공식 문서
옵션의 정확한 동작과 구현별 차이는 kill 관련 공식 문서에서 확인할 수 있습니다.









