강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

특정프로세스 다루는 kill 개론

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

특정프로세스 다루는 kill 개론

 

 

 

 

리눅스시스템에서 실행되어있는 많은 프로세스들을 어떻게 조절하고 관리할 수 있을까? 거의 대부분은 init프로세스에 의해서 프로세스관리가 된다.

 

 

 

 그렇다면 init에 의한 프로세스관리외에 시스템관리자가 직접 관리하는 방법은 없을까?  즉 특정프로세스를 관리자자 직접 죽인다든지 특정프로세스를 직접 재시작하는 등의 작업을 말한다.

 

 

 

 

 

결론부터 말한다면 이것이 가능한 것이 바로 kill이다.

 

 

 

 , kill을 이용하면 특정프로세스에 대하여 직접 원하는 작업들을 수행할 수 있다.

 

 

 

 그렇다면 kill을 이용하여 어떤 작업들을 할 수 있을까? 이 말은 다른 말로 하면 다음과 같다.

 

 

 

 

 

프로세스에게 보낼 수 있는 시그널의 종류는 어떤 것들이 있을까?  다음은 kill명령어에서 사용할 수 있는 시그널의 종류이다.

 

 

 

 

 

[root@RockyLinux01 ~]# 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

[root@RockyLinux01 ~]#

 

 

 

 

좀 많아보이지만 특정프로세스에게 관리자가 할 수 있는 작업의 종류는 위와 같다.

 

 

 

 이제  간략하게 정리해보자.  kill은 특정프로세스에게 특정 시그널(signal)을 보내는 명령어이다.

 

 

 

 , 특정프로세스에게 실행종료시그널, 재시작시그널등, 명령어의 의미에서도 알 수 있듯이 주로 프로세스를 종료하는 용도로 사용되는 명령어이다.

 

 

 

 또한 root는 모든 프로세스에 대하여 kill명령어를 사용할 수 있으나 일반사용자들은 자기가 실행시킨 프로세스에 대해서만 kill명령어를 사용할 수 있다.

 

 

 

 

 

만약 kill -l을 실행해 본다면 위의 리스트를 직접 확인할 수 있을 것이다.

 

 

 

 

 

그리고 위와 같이 kill명령어에서 보낼 수 있는 시그널의 종류에는 60가지이상이다.

 

 

 

 위의 예에서 모두 64가지의 시그널은 숫자와 시그널명으로 짝지어져 있다.

 

 

 

  Kill은 사용시에 시그널에 해당하는 숫자번호를 사용할 수도 있고 시그널명을 사용할 수도 있다.

 

 

 

 즉 위의 시그널리스트에서 “kill -9 PID”“kill -SIGKILL PID”는 동일한 결과를 얻게 되므로 번호를 사용할 수도있고 시그널명을 사용할 수도 있다는 것을 기억해두기 바란다.

 

 

 

 

 

운영체제론에서 얘기하는 원론적인 얘기를 잠깐해보자. 위의 시그널리스트는 모두 운영체제가 특정프로세스에게 보내는 인터럽트(interrupt)라고 할 수 있다.

 

 

 

 쉬운 예로 윈도우시스템에서 "CTRL+ALT+DEL"키를 동시에 눌러서 실행되는 작업관리자에서 실행중인 특정프로그램(프로세스)프로세스끝내기로 강제종료하는 것은 9번 시그널을 해당 프로세스에 보내는 것과 같은 것이다.

 

 

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,035 명
  • 현재 강좌수 :  35,798 개
  • 현재 접속자 :  109 명