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 / 리눅스 배포판 종류와 버전 확인하는 방법

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

리눅스 배포판 종류와 버전을 /etc/os-release, hostnamectl, uname 명령으로 확인하는 방법을 설명합니다. 배포판 계열과 커널 버전의 차이, 스크립트 활용법과 컨테이너·WSL 환경의 주의점도 함께 정리합니다.

Linux / 명령어 / history - 명령어 실행 기록 확인

Linux / 명령어 / history - 명령어 실행 기록 확인

Bash history 명령어로 이전 명령을 조회·검색·재실행·삭제하는 방법을 설명합니다. ~/.bash_history, HISTCONTROL, HISTTIMEFORMAT, histappend와 여러 터미널 기록 동기화 방법도 함께 정리합니다.

Linux / 명령어 / du - 파일과 디렉터리 용량 확인

Linux / 명령어 / du - 파일과 디렉터리 용량 확인

Linux du 명령어로 디렉터리와 파일의 디스크 사용량을 확인하고 큰 항목을 찾는 방법을 설명합니다. apparent size, 파일시스템 경계와 df 결과가 다른 이유도 정리합니다.

Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux / 명령어 / head - 파일 앞부분의 줄과 바이트 출력

Linux head 명령어로 파일의 처음 몇 줄이나 바이트를 출력하는 방법을 설명합니다. 여러 파일, 음수 개수, 파이프 활용과 바이너리 데이터 주의점도 정리합니다.

Linux / 명령어 / passwd - 사용자 비밀번호 변경

Linux / 명령어 / passwd - 사용자 비밀번호 변경

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

Linux / 명령어 / scp - SSH로 로컬·원격 파일 복사

Linux / 명령어 / scp - SSH로 로컬·원격 파일 복사

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

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

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

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

Linux 강좌 / APT와 DNF로 패키지 설치·업데이트하기

Linux 강좌 / APT와 DNF로 패키지 설치·업데이트하기

Debian·Ubuntu의 APT와 Rocky Linux의 DNF로 패키지를 검색·설치·업데이트·제거하는 방법을 비교합니다. 저장소와 의존성, 업데이트 전 확인할 항목을 다룹니다.

Linux / 명령어 / ln - 하드 링크와 심볼릭 링크 생성

Linux / 명령어 / ln - 하드 링크와 심볼릭 링크 생성

Linux ln 명령어로 하드 링크와 심볼릭 링크를 만드는 방법을 설명합니다. 두 링크의 차이, 상대 경로, 깨진 링크와 기존 링크 교체 시 주의점도 정리합니다.