개요
killall5는 init 프로세스를 제외한 시스템의 모든 실행 중인 프로세스에 시그널을 보냅니다. 이 명령어는 주로 시스템의 런레벨 변경 또는 종료 과정에서 사용됩니다. 매우 강력한 명령이므로, 시스템에 심각한 영향을 줄 수 있음을 인지하고 신중하게 사용해야 합니다.
주요 특징
- init 프로세스를 제외한 모든 프로세스에 시그널 전송
- 주로 시스템 종료, 재부팅, 런레벨 변경 시 사용
- 매우 강력하며 시스템에 치명적인 영향을 줄 수 있음
주요 옵션
killall5는 비교적 적은 수의 옵션을 가집니다.
시그널 지정
프로세스 제외
생성된 명령어:
명령어를 조합해 보세요.
설명:
`killall5` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
killall5 명령어의 다양한 사용 예시입니다. 이 명령은 매우 강력하므로 실제 사용 시 주의해야 합니다.
모든 프로세스에 SIGTERM 시그널 보내기 (기본 동작)
sudo killall5
init 프로세스를 제외한 모든 프로세스에 종료를 요청하는 SIGTERM(15) 시그널을 보냅니다. 이는 시스템 종료 시 정상적인 종료를 유도할 때 사용될 수 있습니다.
모든 프로세스 강제 종료 (SIGKILL)
sudo killall5 -9
init 프로세스를 제외한 모든 프로세스를 강제로 종료하는 SIGKILL(9) 시그널을 보냅니다. 이는 프로세스가 SIGTERM에 응답하지 않을 때 최후의 수단으로 사용됩니다. 데이터 손실의 위험이 있습니다.
특정 PID를 제외하고 모든 프로세스 종료 시도
sudo killall5 -o 1234
PID가 1234인 프로세스를 제외하고 모든 프로세스에 SIGTERM 시그널을 보냅니다. 특정 중요한 프로세스를 유지하면서 다른 모든 것을 종료해야 할 때 유용할 수 있습니다.
모든 프로세스에 SIGHUP 시그널 보내기
sudo killall5 -1
init 프로세스를 제외한 모든 프로세스에 SIGHUP(1) 시그널을 보냅니다. 일부 데몬은 SIGHUP을 받아 설정을 다시 로드합니다.
설치
killall5는 일반적으로 `sysvinit-utils` 또는 `sysvinit-tools` 패키지의 일부로 제공됩니다. 대부분의 리눅스 배포판에 기본적으로 설치되어 있지만, 없는 경우 다음 명령어를 사용하여 설치할 수 있습니다.
Debian/Ubuntu 기반 시스템
sudo apt update && sudo apt install sysvinit-utils
CentOS/RHEL/Fedora 기반 시스템
sudo yum install sysvinit-tools
# 또는 최신 버전에서는
sudo dnf install sysvinit-tools
팁 & 주의사항
killall5는 시스템 전체에 영향을 미치는 강력한 명령이므로 사용에 각별한 주의가 필요합니다.
매우 위험한 명령
이 명령은 시스템의 모든 사용자 프로세스를 종료할 수 있으며, 잘못 사용하면 시스템이 불안정해지거나 재부팅될 수 있습니다. 중요한 작업을 수행 중인 서버에서는 사용을 피해야 합니다.
- **데이터 손실 위험**: 강제 종료 시 저장되지 않은 데이터가 손실될 수 있습니다.
- **시스템 불안정**: 필수 서비스가 종료되어 시스템이 멈출 수 있습니다.
대체 명령 고려
특정 프로세스 그룹이나 사용자 프로세스만 종료해야 하는 경우, `killall` 또는 `pkill`과 같은 더 세밀한 제어가 가능한 명령어를 사용하는 것이 좋습니다.
- `killall <process_name>`: 특정 이름의 모든 프로세스 종료
- `pkill <pattern>`: 패턴에 일치하는 프로세스 종료
- `kill <pid>`: 특정 PID의 프로세스 종료
init 프로세스 제외
killall5는 PID 1인 init(또는 systemd) 프로세스에는 시그널을 보내지 않습니다. 이는 시스템의 핵심 프로세스를 보호하기 위함입니다.
sudo 사용 필수
시스템의 모든 프로세스에 시그널을 보내려면 루트 권한이 필요하므로, `sudo`와 함께 사용해야 합니다.