1. 기능
현재 수행 중인 지정한 프로세스에게 지정한 시그널을 보낸다.
보통 kill 명령은 프로세스를 죽이는 데에 사용된다. 그래서 이 유틸리티의 이름도 kill이 되었다.
지정한 시그널이 없으면 TERM 시그널을 보낸다. 이 시그널은 프로세스를 종료시킬 것이다.
2. 문법
# kill [-s signal | -signal] pid ...
# kill -l [signal]
3. 옵션
pid ... : 종료시킬 프로세스 ID 또는 프로세스 이름
-s : 프로세스에게 보낼 시그널을 지정한다. 시그널은 번호로 지정되될 수도 있고 시그널 이름으로 지정될 수도 있다.
-l : 시그널 종류를 나열한다. 시그널의 종류는 시그널 번호 순서대로 이름으로 나열한다.
4. 사용 방법 및 정보
시그널의 종류를 지정하지 않으면 프로세스를 종료기키는 의미로 디폴트 시그널 ID 15번을 보내게 된다.
예를 들면 당신의 시스템을 사용을 마치고 로그 아웃할 때는 시그널 ID 1번의 HUP(Hang UP) 시그널이 시스템으로 전달되며, 이 시그널은 당신의 쉘 상태에서 실행 중인 모든 프로세스를 종료시키고(nohup에 의한 프로세스는 제외) 로그 아웃하게 한다.
[killall]
1. 기능
프로그램 이름으로 프로세스들을 종료시킬 때 사용한다.
지정된 명령이 무엇이든지 간에 수행 중에 있는 모든 프로세스들에게 신호를 보낸다. 만약, 시그널 이름이 지정되어 있지 않다면 SIGTERM이 보내진다.
2. 문법
killall [-signal] [-v] name ...
killall -l
3. 옵션
-signal : 지정된 시스널 번호 또는 시그널 이름을 전송한다.
-v : 시그널이 성공적으로 보내졌다면 보고한다.
4. 사용 방법 및 정보
# killall httpd
# killall -HUP xinetd
[시그널의 종류]
1) SIGHUP(HUP) : 재시작. 프로세스의 설정 파일을 다시 읽는데 사용된다.
2) SIGINT(INT) : 인터럽트 (Ctrl+C)
3) SIGQUIT(QUIT) : 종료
4) SIGILL(ILL) : 잘못된 명령
5) SIGTRAP(TRAP) : 트랩 추적
6) SIGABRT(ABORT) : ABORT 명령
SIGIOT(IOT) : IOT 명령
7) SIGBUS(BUS) : 버스 에러
8) SIGFPE(FPE) : 고정 소수점 예외
9) SIGKILL(KILL) : 강제 종료. 이 시그널은 잡히지 않는다.
10) SIGUSR1(USR1) : 사용자 정의 시그널 1
11) SIGSEGV(SEGV) : 세그멘테이션 위반
12) SIGUSR2(USR2) : 사용자 정의 시그널 2
13) SIGPIPE(PIPE) : 읽을 것이 없는 파이프에 대한 시그널
14) SIGALRM(ALRM) : 경고 클럭
15) SIGTERM(TERM) : 소프트웨어 종료, 일반적으로 kill 시그널이 전송되기 전에 전송된다. 잡히는 시그널이기 때문에 종료되는 것을 트랙할 수 있다.
16) SIGKFLT : 코프로세서 스택 실패
17) SIGCHLD(CHLD) : 자식 프로세스의 상태 변화
18) SIGCONT(CONT) : STOP 시그널 이후 계속 진행할 때 사용
19) SIGSTOP(STOP) : 정지. 이 시그널 역시 잡을 수 없다.
20) SIGTSTP(TSTP) : 키보드에 의해 발생하는 시그널로 Ctrl+Z로 생성된다.
21) SIGTTIN : 백그라운드에서 제어 터미널 읽기
22) SIGTTOU : 백그라운드에서 제어 터미널 쓰기
23) SIGURG : 소켓에서의 긴급한 상태
24) SIGXCPU : CUP 시간 초과.
25) SIGXFSZ : 파일 크기 제한 초과.
26) SIGVTALRM : 가상 시간 경고.
27) SIGPROF : 프로파일링 타이머 경고.
28) SIGWINCH : 윈도우 사이즈 변경
29) SIGIO : 기술자에서 입출력이 가능함.
30) SIGPWR : 전원 실패
31) SIGSYS
UNUSED
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
번호 |
이름(짧은이름) |
설명 |
1 |
SIGHUP(HUP) |
연결 끊기. 프로세스의 설정파일을 다시 읽는데 사용된다. |
2 |
SIGINT(INT) |
Interrupt(실행종료. CTRL-C를 쳤을 때 보내진다) |
3 |
SIGQUIT(QUIT) |
Quit(실행종료. CTRL-/를 쳤을 떄 보내진다) |
4 |
SIGILL(ILL) |
잘못된 명령 |
5 |
SIGTRAP(TRAP) |
트렙 추적 |
6 |
SIGIOT(IOT) |
IOT 명령 |
7 |
SIGBUS(BUS) |
버스 에러 |
8 |
SIGFPE(FPE) |
고정소수점 예외 |
9 |
SIGKILL(KILL) |
무조건 종료. 이 시그널은 잡히지 않는다. |
10 |
SIGUSR1(USR1) |
사용자 정의 시그널1 |
11 |
SIGSEGV(SEGV) |
세그멘테이션 위반. Segmentation Violation(허가되지 않은 메모리 영역에 접근하였다) |
12 |
SIGUSR2(USR2) |
사용자 정의 시그널2 |
13 |
SIGPIPE(PIPE) |
읽을 것이 없는 파이프에 대한 시그널 |
14 |
SIGALRM(ALRM) |
경고 클럭 |
15 |
SIGTERM(TERM) |
소프트웨어 종료 시그널, 일반적으로 kill 시그널이 전송되기 전에 전송된다. 잡히는 시그널이기 때문에 종료되는 것을 트랙할 수 있다. Terminate(가능한한 정상 종료) |
16 |
SIGTKFLT |
코프로세서 스택 실패 |
17 |
SIGCHLD(CHLD) |
자식 프로세스의 상태변화 |
18 |
SIGCONT(CONT) |
Continue(STOP이나 TSTP에 의해 정지된 프로세스가 다시 실행을 계속한다.) |
19 |
SIGSTOP(STOP) |
정지. 이 시그널 역시 잡을 수 없다. |
20 |
SIGTSTP(TSTP) |
키보드에 의해 발생하는 시그널로 Ctrl+Z로 생성된다. |
21 |
SIGTTIN |
백그라운드에서의 제어터미널 읽기 |
22 |
SIGTTOU |
백그라운드에서의 제어터미널 쓰기 |
23 |
SIGURG |
소켓에서의 긴급한 상태 |
24 |
SIGXCPU |
CPU 시간 제한 초과 setrlimit(2) 메뉴얼 패이지 참조 |
25 |
SIGXFSZ |
파일 크기제한 초과 setrlimit(2) 메뉴얼 패이지 참조 |
26 |
SIGVTALRM |
가상 시간 경고 setitimer(2) 메뉴얼 패이지 참조 |
27 |
SIGPROF |
프로파일링 타이머 경고. setitimer(2) 메뉴얼 페이지 참조 |
28 |
SIGWINCH |
윈도우 사이즈 변경 |
29 |
SIGIO |
기술자에서 입출력이 가능함. fcntl(2) 메뉴얼 참조 |
30 |
SIGPWR |
전원 실패 |
31 |
UNUSED |
사용 안함 |
신호 내 용
2 INT interrupt
3 QUIT quit
4 ILL 불법 명령어
5 TRAP 추적 트랩
6 IOT IOT명령
7 EMT EMT명령
8 FPE 부동소숫점 예외
9 KILL 종료
10 BUS 버스 에러
11 SEGV 세그먼테이션 위반
12 SYS 시스템 호출에 대한 불량 인수
13 PIPE 기록한것이 없는 파이프상에서 판독
14 ALRM 경보 클락
15 TERM 종료(kill)로부터 소프트웨어 종료신호
16 USR1 사용자 정의 신호1
17 USR2 사용자 정의 신호2
18 CLD 서브 쉘삭제
* signal_number와 이름
1 SIGHUP(HUP) : hang up의 약자로 프로세스를 재시작시키는 시그널이다.
2 SIGINT(INT) : 인터럽트. 실행을 중지시킨다. [CTRL] + [C] 를 눌렀을 때 보내지는 시그널이다.
3 QUIT : 실행중지.
9 SIGKILL(KILL) : 무조건 종료, 즉 강제 종료시키는 시그널이다.
11 SEGV : Segment Violation(허가되지 않은 메모리 영역 접근)
15 SIGTERM(TERM) : Terminate의 약자로 가능한 정상 종료시키는 시그널로 kill 명령의 기본 시그널이다.
18 CONT : Continue. STOP등에 의해 정지된 프로세스를 다시 실행시킨다.
19 STOP : 무조건적, 즉각적 정지
20 TSTP : 실행 정지 후 다시 실행을 계속하기 위해 대기시키는 시그널이다. [CTRL]+[Z]를 눌렀을 때 보내지는 시그널.
일반적으로 사용되는 signal은 다음과 같다.
이름 번호 의미
HVP 1 Hangup (실행종료. 로그아웃 하거나 모뎀 접속을 끊을 때 보냄)
INT 2 Interrupt (실행종료. ^c를 쳤을 때 보내진다.)
QUIT 3 Quit (실행종료. ^8를 쳤을 때 보내진다.)
KILL 9 Kill (무조건 종료)
SEGV 11 Segmentation Violation (허가되지 않은 메모리 영역에 접근)
TERM 15 Terminate (가능한 한 정상 종료)
CONT 18 Continue (STOP나 TSTP에 의해 정지된 프로세스가 다시 실행을 계속한다.)
STOP 19 Stop (무조건적으로 그리고 즉각적으로 정지)
TSTP 20 Stop (실행을 정지 후 다시 실행을 계속하기 위해 대기. ^Z)
댓글