[리눅스 명령어] 프로세스 죽이기, kill
프로세스 죽이기, kill
`kill` 명령어는 Unix 및 Unix-like 시스템에서 프로세스에 시그널을 보내는 데 사용됩니다. 대부분의 사용자들은 `kill`을 프로세스를 종료하는 명령어로 알고 있지만, 실제로는 다양한 시그널을 프로세스에 전달하는 데 사용될 수 있습니다.
기본 사용법
1. 특정 프로세스에 시그널 보내기:
kill -SIGNAL PID
여기서 `SIGNAL`은 보낼 시그널 번호나 이름이고, `PID`는 시그널을 받을 프로세스 ID입니다.
주요 시그널
- SIGTERM (15): 프로세스를 종료하도록 요청하는 시그널. 이것이 `kill` 명령어의 기본 시그널입니다. 프로세스는 이 시그널을 받으면 자체적으로 정리 작업을 수행한 후 종료할 수 있습니다.
- SIGKILL (9): 프로세스를 강제로 종료하는 시그널. 프로세스는 이 시그널을 무시하거나 처리할 수 없으므로, 이 시그널을 받으면 즉시 종료됩니다.
- SIGHUP (1): 프로세스에 Hang UP을 알리는 시그널. 대부분의 데몬 프로세스는 이 시그널을 받으면 설정 파일을 다시 읽습니다.
예제
1. 특정 프로세스 종료하기 (기본 시그널 SIGTERM 사용):
kill 12345
여기서 `12345`는 종료할 프로세스의 ID입니다.
2. 특정 프로세스 강제 종료하기 (SIGKILL 사용):
kill -9 12345
3. 특정 프로세스에 SIGHUP 보내기:
kill -HUP 12345
주의사항
- `kill` 명령어를 사용할 때는 주의가 필요합니다. 특히 `SIGKILL`을 사용하여 프로세스를 강제로 종료할 때는 프로세스가 중요한 작업을 수행 중일 수 있으므로 데이터 손실이나 시스템의 불안정을 초래할 수 있습니다.
- 프로세스의 ID를 알아내려면 `ps`, `pgrep` 또는 `top`과 같은 명령어를 사용할 수 있습니다.