- kill -
1. 기능
현재 수행중인 프로세서에게 시그널을 보낸다.
보통 KILL이 무어냐 물어보면 프로세서를 죽이는데 사용한다고 대답을 하는데 그건 물론 오답입니다.
KILL 명령어는 실행중인 프로세서에 시그널을 보낸다고 표현해주세요.
2. 문법
# kill [ -signal ID ] PID
# kill -l
3. 옵션 - tupe pattern 형식이 pattern인 것.
- signal ID :
프로세서에게 보낼 시그널을 지정한다. 시그널은 번호로 지정되 수도 있고 시그널 이름으로 지정될 수도 있다.
- l : 시그널 종류를 나열한다. 시그널의 종류는 시그널 버호 순서대로 이름으로 나열한다.
4. 사용방법 및 정보
시그널의 종류를 지정하지 않으면 프로세서를 종료기키는 의미로 디폴트 시그널 ID 15번을 보내게 된다.
# kill의 시그널 종류
1. SIGHUP(HUP) : 연결 끊기. 프로세스의 설정파일을 다시 읽는데 사용된다.
2. SIGINT(INT) : 인터럽트
3. SIGQUIOT(QUIT) : 종료
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) : 세그멘테이션 위반
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로 생성된다.
자 보시는 바와같이 여러종류의 SIGNAL ID가 보입니다.
가장 간단히 많이 쓰는것은(물론 저의 경우입니다.)
9번입니다.
9. SIGKILL(KILL) : 죽이기. 이 시그널은 잡히지 않는다. 라고 되어있죠??
제가 주변에 리눅스가 설치된곳이 없어서 예문은 글로 대신하겠습니다.(스샷은 나중에 올릴께요)
동영상 스샷 필요없이 ps 와 kill 명령어로 죽일 수 있습니다.
ps aux 라고 치면 현재 실행중인 프로세서들이 뜨는데
여기서 죽이고싶은 프로세서의 PID (즉 왼쪽에서 두번째 칸에 있는 숫자).
를 알아내 kill -9 PID 라고 치면 됩니다.
예를들어
ps aux 의 명령어를 치면
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1576 536 ? S Feb19 0:01 init [2]
root 2 0.0 0.0 0 0 ? S Feb19 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN Feb19 0:00 [ksoftirqd/0]
다음과 같은 화면이 나옵니다.
위에 보시면 눈에 확들어 오시죠??
네 PID가 올라 와있습니다. 프로세서의 간단한정보가 궁금하시다면(COMMAND참조 유추하시길)
KILL -9 1 이라고 치면? 당연히 1번 프로세서가 죽겠죠?
물론 프로세서의 PID는 1자리수가 아닙니다.
백단위도 천단위도 있지요
( 천단위가 많습니다. - ㅡ.,ㅡ; 당연히 백단위보다 천단위가 숫자 종류가 많다고 하시면 할말없음;;)
pstree -p 하시면
saslauthd(2056)-+-saslauthd(2058)
| |-saslauthd(2059)
| |-saslauthd(2060)
| `-saslauthd(2061)
|-sendmail(15819)-+-sendmail(20751)
| `-sendmail(20908
이런식의 출력에서 pid만 확인하셔서 마찬가지 -9옵션으로 킬해주셔도 되겠습니다.
pid만 알면 얼마든지 킬이 가능하니까요.....
원격에서 들어온 사용자도 킬이 가능하겠죠?
터미널이 열리고 그 사용자가 들어와서 실행시킨 프로세서는 좀 달리보이겠죠?
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1576 536 ? S Feb19 0:01 init [2]
root 2 0.0 0.0 0 0 ? S Feb19 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN Feb19 0:00 [ksoftirqd/0]
센스 쟁이들 @.,@ 벌써 눈치채셨군요 사용자가 누구인지만 봐도 바로 답이 나오는거죠
오랫만에 글올리는데 별도움이 안되는 내용만 주저리주저리 죄송합니다. +_ +;;
다음에 올릴때는 알찬 내용으로 돌아 오겠습니다. @.,@
'리눅스 > 명령어' 카테고리의 다른 글
[리눅스] 기본명령어 모음 참고 (0) | 2012.01.18 |
---|---|
[리눅스] 하드디스크 정보 알기 / 추가,포멧,파티션 (0) | 2012.01.18 |
리눅스 명령어 (0) | 2012.01.16 |
[컴퓨터 장치] 데스크탑 하드웨어 정보 (0) | 2012.01.13 |
[리눅스 기본] 메인보드 정보 알기 (0) | 2012.01.12 |