Linux

[리눅스] kill 명령어 완벽 가이드 사용법

인생아 2024. 10. 1. 18:18
반응형

kill 명령어는 프로세스를 종료할 때 사용하는 리눅스 명령어입니다. 프로세스는 시스템에서 작업을 수행하는 기본 단위로, 가끔 정상적으로 종료되지 않거나 강제로 종료해야 할 필요가 있을 때 kill 명령어를 사용합니다. 주로 프로세스 ID(PID)를 이용하여 프로세스를 식별한 후 종료를 시도하며, 시그널(signal)을 이용해 다양한 방식으로 종료를 처리할 수 있습니다.

kill 명령어 기본 사용법

kill [옵션] PID

PID는 프로세스 ID로, 종료할 프로세스를 식별하는 숫자입니다. 옵션을 통해 특정한 시그널을 보낼 수 있으며, 기본적으로 SIGTERM(15번 시그널)이 사용됩니다.

주요 시그널

  • SIGTERM(15): 프로세스에게 정상적으로 종료하도록 요청합니다.
  • SIGKILL(9): 즉시 프로세스를 강제 종료합니다. 프로세스가 응답하지 않거나 종료되지 않을 때 사용합니다.
  • SIGHUP(1): 프로세스를 재시작하거나 종료하는 데 사용됩니다.

ps 명령어로 프로세스 확인

먼저, ps 명령어로 프로세스를 확인하고 PID를 얻을 수 있습니다.

user@linux:~/Documents$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:00 ?        00:00:02 /sbin/init
user      1234  1200  0 09:30 pts/0    00:00:00 bash
user      5678  1234  0 09:31 pts/0    00:00:01 python3

위 예제에서 python3 프로세스의 PID는 5678입니다.

SIGTERM으로 프로세스 종료

user@linux:~/Documents$ kill 5678

이 명령어는 5678 PID를 가진 python3 프로세스에게 SIGTERM(15) 시그널을 보내 정상 종료를 요청합니다. 이 시그널은 프로세스가 정상 종료하도록 유도하지만, 프로세스가 이를 무시하거나 응답하지 않을 수 있습니다.

SIGKILL로 강제 종료

user@linux:~/Documents$ kill -9 5678

이 명령어는 SIGKILL(9) 시그널을 보내 python3 프로세스를 즉시 강제 종료합니다. 프로세스가 응답하지 않을 때 유용하며, 해당 프로세스는 강제로 메모리에서 제거됩니다.

SIGHUP으로 프로세스 재시작

user@linux:~/Documents$ kill -1 1234

SIGHUP(1) 시그널은 bash 셸을 다시 로드하거나 재시작하도록 유도하는 데 사용됩니다. 이 시그널은 셸이나 데몬 프로세스에 주로 사용되며, 설정 파일을 다시 읽어오는 등의 역할을 합니다.

모든 프로세스 종료

모든 프로세스를 종료하는 것은 PID 1을 제외한 프로세스에 사용될 수 있으며, 프로세스 그룹을 종료하거나 사용자의 모든 프로세스를 종료하는 데 유용합니다.

user@linux:~/Documents$ kill -9 -1

이 명령어는 현재 로그인한 사용자의 모든 프로세스를 종료합니다. 매우 위험한 명령이므로 신중하게 사용해야 합니다.

프로세스 그룹 종료

user@linux:~/Documents$ kill -15 -1234

-1234와 같은 음수 PID는 해당 프로세스 그룹에 있는 모든 프로세스에 시그널을 보냅니다. 이 경우 1234 PID가 속한 프로세스 그룹 전체가 종료됩니다.

프로세스 강제 종료 주의 사항

SIGKILL(9) 시그널은 프로세스를 강제 종료하기 때문에, 데이터 손실이나 파일 손상이 발생할 수 있습니다. 항상 SIGTERM(15) 시그널로 먼저 프로세스를 종료하고, 응답이 없는 경우에만 SIGKILL을 사용하는 것이 좋습니다.

참고 사이트

반응형