[linux] kill 커맨드로 프로세스 강제로 종료하기


리눅스에서 kill 명령어는 프로세스를 강제로 종료하거나 종료 시그널을 보내는 데 사용합니다. kill 명령어는 프로세스 ID(PID)를 통해 특정 프로세스를 종료합니다.

kill 명령어의 기본 사용법은 다음과 같습니다.

kill [옵션] [PID]

예를 들어 프로세스 ID가 3124면 다음처럼 커맨드를 사용합니다.

kill 3124

kill 프로세스를 실행할 때 사용 가능한 옵션은 다음 두 가지 입니다.

  • -<signal> : 특정 시그널을 보냅니다. 예를 들어, -9 옵션은 SIGKILL 시그널을 보내 프로세스를 강제 종료하는 것을 말합니다. 강제 종료 시그널 옵션을 표시하지 않으면 기본적 값인 SIGTERM 시그널이 보내집니다. SIGTERM은 프로세스에 종료를 요청하는 시그널입니다. 즉, 프로세스에게 프로세스를 종료해달라는 시그널을 보내고 kill 커맨드는 종료합니다.
  • -l : kill -l 명령어로 보내는 시그널의 값과 정수 값을 목록으로 확인할 수 있습니다.

시그널의 종류는 다음과 같습니다. 종류를 모두 알 필요는 없고, 대부분의 경우 9번인 SIGKILL을 사용합니다. kill -l 커맨드로 확인할 수 있습니다.

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

kill -9 3124

위 명령은 PID가 3124인 프로세스에 SIGKILL 시그널을 보내 강제 종료합니다. 프로세스가 먹통에 빠졌거나, kill 커맨드만으로 프로세스가 종료되지 않을 때 사용합니다.

모든 프로세스의 상세 목록을 출력하려면 다음 커맨드로 확인할 수 있습니다.

ps -aux

시그널을 보내는 방법은 앞서 소개한 것처럼 -<signal> 처럼 시그널 타입을 정수로 표시해서 시그널을 보내는 방법외에 다음처럼 -s 옵션으로 시그널 이름을 사용하는 방식도 있습니다.

kill -s SIGKILL 3124