본문 바로가기
운영체제 (LNX,WIN)

kill, killall : 프로세스에게 시그널 전송 [시그널의 종류]

by 날으는물고기 2008. 12. 30.

kill, killall : 프로세스에게 시그널 전송 [시그널의 종류]

[kill]

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

사용 안함

 
 
trap을 위해 사용되는 신호번호

 신호               내 용  
1      HUP    hangup
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)

728x90

댓글