특정프로세스 다루는 kill 개론
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,264 조회
- 0 추천
- 목록
본문
특정프로세스 다루는 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번 시그널을 해당 프로세스에 보내는 것과 같은 것이다.
관련자료
-
이전
-
다음