kill (프로세스 죽이기)
[서식]
kill [-옵션] pid
kill [-옵션] 시그널
[주요 사용 옵션]
-s 시그널 : 특별히 보낼 시그널 지정
-p : 실행중인 프로그램의 이름만을 출력
-l 시그널 : 시그널로 사용할 수 있는 시그널 이름들을 출력. 이것은 /usr/include/linux/signal.h 에서 볼 수 있음.
[사용법]
ps로 실행 중인 프로그램의 id 확인. kill로 실행 중인 프로그램 중단.
강제로 실행 중인 프로그램을 종료 시킬 때에는 옵션으로 ?9, -SIGKILL, -KILL 등은 사용하면 된다.
자주 사용되는 시그널의 의미
- SIGUP : hangup, 로그아웃 하거나 접속을 끊을 때 발생하는 시그널, 특정의 실행중인 프로그램이 이용하는 설정 파일을 변경시키고 변화된 내용을 적용할때 이용
- SIGINT : interrupt, 현재 작동 중인 프로그램의 동작을 멈출 때 사용
- SIGQUIT : quit, SIGINT와 마찬가지로 종료 키를 누를 때 커널에 의해 보내지는데 일반적인 값은 ^c. SIGQUIT는 비정상적인 종료이므로 코어파일을 생성하고 종료한다는 것이 차이이다.
- SIGKILL : kill, 무조건 해당 실행 중인 프로그램을 중지.
- SIGSEGV : segmentation violation, 메모리 액세스가 잘못 되었을 때 발생
- SIGTERM : terminate, 실행중인 프로그램에 정의되어 있는 정상적인 종료방법으로 프로그램을 끝내게 한다. Kill 명령에서 시그널을 특별히 지정하지 않으면 이 시그널을 이용하여 프로그램을 끝낸다.
Signal 보내기(kill)
프로세스 간의 통신 수단이 signal 이라고 할 수 있다.
하나의 프로세스가 다른 프로세스에게로 메시지를 보내기 위한 수단이다.
kill은 프로세스를 죽이는 명령이 아니라 signal 을 보내는 명령이다.
signal
일반적으로 사용되는 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)
kill 명령의 사용법
kill <pid>
kill -<signal> <pid>
유용한 TIP
Tocmat의 프로세스가 Locking되었을때 kill을 이용하여 프로세스 스레드를 볼 수 있는 방법
kill -3 <pid> 를 하게 되면 catalina.out 파일에 프로세스의 스레드 값을 볼 수 있습니다.
'Server관련 > Sever(OS)' 카테고리의 다른 글
[Apache설정]Apache Core Features (0) | 2009.02.03 |
---|---|
e2fsck를 이용한 리눅스 파일 시스템 복구하기 (0) | 2008.09.16 |
[linux] LVM in rescue mode (복원) (0) | 2008.09.16 |
[Unix] 좀비 프로세스 대치법 (0) | 2008.09.09 |
아파치 톰캣 디렉터리 열람 취약점 (0) | 2008.08.13 |
[펌]단일 Tomcat 서버에서 가상 호스트 설정법과 각 호스트별 Manager 기능 설정 (0) | 2008.04.10 |
[톰켓6.0]server.xml에 utf-8설정 (0) | 2008.04.08 |
vpn설정시 , Active 디렉토리 DNS주소와 DNS접미사 추가하기 (0) | 2008.03.26 |
(로그인하지 않으셔도 가능)