> 프로세스 관리 > killall

killall: 이름으로 프로세스 종료

killall 명령어는 지정된 이름의 모든 실행 중인 프로세스에 시그널을 보냅니다. 이는 특정 애플리케이션이나 서비스의 모든 인스턴스를 한 번에 종료할 때 유용합니다. 기본적으로 SIGTERM 시그널을 보내지만, 다른 시그널을 지정할 수도 있습니다.

개요

killall은 프로세스 ID(PID) 대신 프로세스 이름으로 여러 프로세스를 한 번에 종료할 수 있게 해주는 강력한 도구입니다. 이는 동일한 이름의 모든 인스턴스를 대상으로 하므로, 특정 애플리케이션의 모든 창이나 백그라운드 서비스를 종료할 때 특히 편리합니다.

주요 특징

  • 프로세스 이름 기반 종료
  • 다양한 시그널 전송 지원 (기본 SIGTERM)
  • 사용자, 시간 등 다양한 조건으로 필터링 가능
  • 여러 인스턴스를 한 번에 처리

주요 옵션

killall 명령어는 프로세스 종료 방식과 대상을 세밀하게 제어할 수 있는 다양한 옵션을 제공합니다.

기본 동작 및 시그널

프로세스 필터링

생성된 명령어:

명령어를 조합해 보세요.

설명:

`killall` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

killall 명령어의 다양한 활용 예시입니다.

특정 이름의 모든 프로세스 종료

killall firefox

Firefox 웹 브라우저의 모든 인스턴스를 종료합니다. 기본 시그널인 SIGTERM(정상 종료 요청)을 보냅니다.

특정 시그널로 강제 종료

killall -s SIGKILL chrome

Chrome 웹 브라우저의 모든 인스턴스를 SIGKILL(강제 종료) 시그널로 종료합니다. 이 시그널은 프로세스가 정리 작업을 수행할 기회를 주지 않으므로 주의해서 사용해야 합니다.

대화형 모드로 종료

killall -i sshd

sshd(SSH 데몬) 프로세스를 종료하기 전에 각 인스턴스에 대해 사용자에게 확인을 요청합니다. 'y'를 입력하면 종료됩니다.

특정 사용자의 프로세스 종료

killall -u user1

사용자 'user1'이 실행 중인 모든 프로세스를 종료합니다.

프로세스 종료 대기

killall -w myapp

현재 실행 중인 'myapp' 프로세스가 완전히 종료될 때까지 명령어가 대기합니다.

설치

killall 명령어는 대부분의 리눅스 배포판에서 'psmisc' 패키지의 일부로 기본 설치되어 있습니다. 만약 시스템에 설치되어 있지 않다면, 다음 명령어를 사용하여 설치할 수 있습니다.

Debian/Ubuntu

sudo apt update && sudo apt install psmisc

APT 패키지 관리자를 사용하여 psmisc 패키지를 설치합니다.

CentOS/RHEL/Fedora

sudo yum install psmisc
# 또는
sudo dnf install psmisc

YUM 또는 DNF 패키지 관리자를 사용하여 psmisc 패키지를 설치합니다.

팁 & 주의사항

killall 명령어를 사용할 때 유용한 팁과 주의해야 할 사항들입니다.

SIGKILL(-9) 사용 시 주의

SIGKILL(시그널 번호 9)은 프로세스를 강제로 즉시 종료시키며, 프로세스가 열려있는 파일이나 데이터 등을 정리할 기회를 주지 않습니다. 이는 데이터 손실이나 시스템 불안정을 초래할 수 있으므로, 다른 시그널(예: SIGTERM)로 먼저 시도하고 실패할 경우에만 최후의 수단으로 사용해야 합니다.

  • **우선 SIGTERM(기본값) 사용**: 대부분의 애플리케이션은 SIGTERM을 받으면 정상적으로 종료됩니다.
  • **최후의 수단으로 SIGKILL 사용**: 프로세스가 응답하지 않을 때만 사용하세요.

정확한 프로세스 이름 확인

killall은 정확한 프로세스 이름을 사용합니다. `ps aux | grep <프로세스_이름>` 명령어를 사용하여 종료하려는 프로세스의 정확한 이름을 확인하는 것이 좋습니다.

  • 예시: `ps aux | grep firefox`

killall과 pkill의 차이

`killall`은 정확한 프로세스 이름을 기반으로 작동하는 반면, `pkill`은 정규 표현식을 사용하여 프로세스 이름을 매칭할 수 있어 더 유연한 검색 및 종료가 가능합니다.

  • `killall`: 정확한 이름 매칭 (예: `killall firefox`)
  • `pkill`: 정규 표현식 매칭 (예: `pkill -f 'firef[o]x'`)
  • `pkill`은 PID를 직접 지정하지 않고도 `kill` 명령의 기능을 확장합니다.

시스템 프로세스 종료 주의

시스템의 필수 프로세스를 `killall`로 종료하면 시스템이 불안정해지거나 충돌할 수 있습니다. 특히 `root` 권한으로 실행할 때는 더욱 주의해야 합니다.

  • 예: `killall systemd`, `killall init` 등은 절대 실행하지 마세요.

동일 카테고리 명령어