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

같은 카테고리의 다른 글
Linux / 명령어 / more - 텍스트를 화면 단위로 나누어 보기

Linux / 명령어 / more - 텍스트를 화면 단위로 나누어 보기

Linux more 명령어로 긴 텍스트를 화면 단위로 읽는 방법을 설명합니다. 이동과 검색 키, 파이프 사용법, less와의 차이를 함께 정리합니다.

Linux / 명령어 / mv - 파일 이동과 이름 변경

Linux / 명령어 / mv - 파일 이동과 이름 변경

Linux mv 명령어로 파일과 디렉터리를 이동하거나 이름을 변경하는 방법을 설명합니다. 덮어쓰기 방지, 파일 시스템 간 이동과 안전한 자동화 방법도 정리합니다.

Linux / 명령어 / apt-get - APT 패키지 작업을 스크립트와 명령행에서 실행

Linux / 명령어 / apt-get - APT 패키지 작업을 스크립트와 명령행에서 실행

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

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux / 디스크 관리 / 파티션, 포맷, 마운트

Linux에서 디스크를 관리할 때 필요한 파티션 생성, 파일 시스템 포맷, 마운트 방법을 정리했습니다.

Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

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

Linux / 명령어 / man - 명령어 매뉴얼 확인

Linux / 명령어 / man - 명령어 매뉴얼 확인

man 명령어로 리눅스 매뉴얼을 읽고 검색하는 방법을 설명합니다. 매뉴얼 섹션, 화면 이동, 키워드 검색, 셸 내장 명령 확인과 문서가 없을 때의 해결 방법을 함께 정리합니다.

Linux / 명령어 / dpkg - 로컬 DEB 패키지 설치와 설치 정보 조회

Linux / 명령어 / dpkg - 로컬 DEB 패키지 설치와 설치 정보 조회

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

Linux / 명령어 / nmap - 허가된 호스트의 포트와 서비스 조사

Linux / 명령어 / nmap - 허가된 호스트의 포트와 서비스 조사

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

Linux / 명령어 / sort - 텍스트 행 정렬

Linux / 명령어 / sort - 텍스트 행 정렬

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

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

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