Linux / 명령어 / killall - 이름이 같은 프로세스에 시그널 보내기
Linux의 killall은 지정한 이름과 일치하는 프로세스들에 시그널을 보냅니다. 기본은 SIGTERM이며, 같은 이름의 작업이 여러 개면 모두 대상이 될 수 있습니다.
killall 명령어란?
Linux에서 흔한 psmisc 구현을 기준으로 설명합니다. 다른 Unix 계열에서는 killall의 의미가 달라질 수 있으므로 시스템을 옮겨 사용할 때 반드시 현재 매뉴얼을 확인하세요. 대상 선정은 pgrep로 먼저 검토합니다.
기본 문법
killall [옵션] 이름 ...
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man killall으로 현재 시스템의 설명을 확인하세요.
사용 예제
동명 프로세스 확인
의도한 이름의 PID와 명령줄을 먼저 봅니다.
pgrep -a -x myworker
정상 종료 요청
Linux psmisc 구현에서 이름이 일치하는 작업에 SIGTERM을 보냅니다.
killall -TERM myworker
대상 이름과 사용자 제한
사용자 범위를 줄일 필요가 있을 때 사용합니다.
killall -u alice myworker
같은 이름의 프로세스가 여러 개일 때
killall은 지정한 이름과 일치하는 프로세스 전체에 신호를 보낼 수 있습니다. 먼저 pgrep으로 후보를 확인해야 예상 밖의 인스턴스를 종료하지 않습니다.
pgrep -a -x demo-worker killall -TERM demo-worker
첫 명령은 대상 PID와 명령행을 보여주며, 두 번째 명령은 성공해도 보통 출력하지 않습니다. 이후 pgrep -a -x demo-worker로 남은 프로세스를 확인하세요. 이름이 같은 작업이 여럿이라면 모두 영향을 받을 수 있습니다.
예제 이름은 자신이 만든 시험 프로세스로 바꾸어 사용하세요. 일부 유닉스 계열의 killall은 Linux와 동작이 다르므로 이식성을 가정하지 마세요. 서비스 관리 대상이면 프로세스 직접 종료보다 systemctl stop 서비스명이 적합할 수 있습니다.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-s 시그널 |
보낼 시그널을 지정합니다. |
-u 사용자 |
지정한 사용자의 프로세스만 선택합니다. |
-i |
대상마다 확인을 요청합니다. |
-v |
수행 내용을 자세히 표시합니다. |
-w |
일치한 프로세스가 종료될 때까지 기다립니다. |
사용할 때 주의할 점
이름만으로 모든 동명 프로세스에 영향을 줄 수 있으므로 공유 서버에서는 특히 조심하세요. -w는 종료되지 않는 프로세스 때문에 오래 기다릴 수 있습니다. 다른 운영체제의 killall은 동작이 다를 수 있으니 Linux psmisc 구현과 혼동하지 마세요.
자주 묻는 질문
killall은 시스템의 모든 프로세스를 종료하나요?
Linux psmisc 구현에서는 지정한 이름에 일치하는 프로세스를 대상으로 합니다. 다만 다른 Unix 구현에서는 의미가 다를 수 있습니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 killall 관련 공식 문서에서 확인할 수 있습니다.









