리눅스마스터1급: 프로세스들에 인터럽트 시그널 보내는 kill
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,197 조회
- 0 추천
- 목록
본문
리눅스마스터1급: 프로세스들에 인터럽트 시그널 보내는 kill
kill
프로세스의 종료는 앞의 내용과 같이 프로세스가 포그라운드에 있는 경우에는 <Ctrl+C>로 종료가 가능하지만 백그라운드에 있는 경우에는 kill 또는 killall 명령을 사용해야 한다.
그리고 이 명령어들은 해당 콘솔에서 실행된 프로세스뿐만 아니라 현재 실행된 모든 프로세스를 제어할 수 있다.
수퍼 유저는 모든 프로세스에 대해 kill 명령어를 사용할 수 있으나 일반 사용자들은 자기가 실행시킨 프로세스에 대해서만 kill 명령어를 사용할 수 있다.
1) 개요
이 명령을 사용하는 가장 간단한 방법은 kill 뒤에 프로세스 아이디(PID)를 적는 것이다.
그리고 필요에 따라 kill 뒤에 옵션을 사용하여 시그널을 지정할 수 있다.
|
|
|
| kill [-s 시그널|-p] [-a] [--] PID ... kill –l [시그널] |
|
|
|
|
2) 옵션
kill의 옵션은 다음과 같다.
옵션 | 의미 |
-s | 특별히 보낼 시그널을 지정한다.
여기에는 시그널 이름이나 번호가 온다.
|
-l |
시그널로 사용할 수 있는 시그널 이름들을 보여준다.
|
-a |
프로세스 ID를 pid로 변환할 때, 다른 uid를 갖는 프로세스도 변환시킬 수 있도록 허용한다.
|
-p |
프로세스 ID를 지정한 경우, 그 프로세스에 시그널을 보내지 않고 그 프로세스의 이름만 보여준다.
|
3) 설명
kill 명령은 지정한 프로세스에 특정한 시그널(signal)을 보내는 명령어이다.
즉, 특정 프로세스에 실행종료시그널, 재시작시그널 등 명령어의 의미에서도 알 수 있듯이 주로 프로세스를 종료하는 용도로 사용되는 명령어이다.
지정한 시그널이 없으면 TERM 시그널을 보내는데, 이 시그널은 프로세스를 종료시킬 것이다.
다음과 같이 –l 옵션을 사용하면 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 ~]#
|
시그널은 시그널의 번호, 시그널 이름 및 시그널로 각각 보낼 수 있는데, 예를 들어 강제로 실행중인 프로그램을 종료시킬 때에는 옵션으로 –9, -SIGKILL, -KILL 등을 사용하면 된다.
아래는 자주 사용되는 시그널의 의미들이다.
번호 | 시그널 이름 | 시그널 | 의미 |
1 | SIGHUP | HUP | hangup. 로그아웃하거나 접속을 끊을 때 발생하는 시그널로서, 특정의 실행 중인 프로그램이 이용하는 설정 파일을 변경시키고 변화된 내용을 적용할 때 이용된다.
|
2 | SIGINT | INT | interrupt. 현재 작동중인 프로그램의 동작을 멈출 때 사용한다.
사용자가 터미널에서 종료키(quit)를 누를 때 커널에 의해 보내지는데 일반적인 값은 <ctrl + c>이다. |
3 | SIGQUIT | QUIT | SIGINT와 마찬가지로 사용자가 터미널에서 종료키(quit)를 누를 때 커널에 의해 보내지는데 일반적인 값은 <ctrl + \>이다. |
9 | SIGKILL | KILL | 무조건 해당 실행중인 프로그램을 중지시킨다.
이 시그널 역시 많이 사용되는데, 실행중인 프로그램을 무조건 끝내고 싶을 때 이 시그널을 보내면 바로 종료한다. |
11 | SIGSEGV | SEGV | segmentation violation. 메모리 액세스가 잘못 되었을 때 발생한다.
|
15 | SIGTERM | TERM | 실행중인 프로그램에 정의되어 있는 정상적인 종료방법으로 프로그램을 끝내게 한다.
kill 명령에서 시그널을 특별히 지정하지 않으면 이 시그널을 이용하여 프로그램을 끝낸다.
|
18 | SIGCONT | CONT | 중단되었던 프로세스를 재개한다.
|
19 | SIGSTOP | STOP | 프로세스를 중단한다.
|
20 | SIGTSTP | TSTP | 터미널에서의 중단 시그널이다.
|
다음과 같이 kill 명령을 사용하여 firefox와 gnome-calculator 프로그램의 프로세스를 종료하도록 하자.
|
|
|
| # jobs -l [1]+ 5377 Stopped firefox [2]- 5398 Running gnome-calculator & # kill 5398 [2] 종료됨 gnome-calculator # kill -9 5377 |
|
|
|
|
관련자료
-
이전
-
다음