killall
killall 명령어는 명령어의 이름에서도 알 수 있듯이 특정 프로세스를 하넌에 모두 종료 시킬수 있는 명령어이다. 간단히 특정 프로세스를 한번에 종료시키고자 할 때 유용하게 사용한다.
<명령어 위치> : /usr/bin/killall
<사용형식>
[root@localhost /]# killall
Usage: killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME...
killall -l, --list
killall -V, --version
(01) 아파치 프로세스(httpd) 모두 종료하기
[root@localhost ~]# ps -ef | grep httpd
root 8036 1 0 10:53 ? 00:00:00 /usr/local/server/apache/bin/httpd -k start
nobody 8071 8036 0 10:53 ? 00:00:00 /usr/local/server/apache/bin/httpd -k start
nobody 8072 8036 0 10:53 ? 00:00:00 /usr/local/server/apache/bin/httpd -k start
nobody 8073 8036 0 10:53 ? 00:00:00 /usr/local/server/apache/bin/httpd -k start
nobody 8074 8036 0 10:53 ? 00:00:00 /usr/local/server/apache/bin/httpd -k start
nobody 8075 8036 0 10:53 ? 00:00:00 /usr/local/server/apache/bin/httpd -k start
root 8751 8718 0 11:03 pts/2 00:00:00 grep httpd
[root@localhost ~]# killall httpd
[root@localhost ~]#
[root@localhost ~]# ps -ef | grep httpd
root 8757 8718 0 11:05 pts/2 00:00:00 grep httpd
[root@localhost ~]#
(02) killall 실행으로 프로세스 종료시 종료 여부 확인하기
이번에는 killall 명령어로 프로세스를 종료할 때에 차례대로 종료 확인을 하도록 하는 방법이다.
-i 옵션(interactive)을 사용하면 된다.
[root@localhost ~]# killall -i httpd
Kill httpd(8769) ? (y/N) n
Kill httpd(8770) ? (y/N) n
Kill httpd(8771) ? (y/N) n
Kill httpd(8772) ? (y/N) n
Kill httpd(8773) ? (y/N) n
Kill httpd(8774) ? (y/N) n
httpd: no process killed
[root@localhost ~]# killall -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
위는 killall 의 시그널 명이다.
(03) killall 실행으로 프로세스 종료시 세부정보 보여주기
[root@localhost ~]# killall -v httpd
Killed httpd(8769) with signal 15
Killed httpd(8770) with signal 15
Killed httpd(8771) with signal 15
Killed httpd(8772) with signal 15
Killed httpd(8773) with signal 15
Killed httpd(8774) with signal 15
(04) killall 명령어의 실행으로 지정한 프로세스 완전히 종료될 때까지 지속적인 종료시도하기
서버부하가 있거나 너무 많은 프로세스들이 실행이 되고 있을 경우에는 killall 명령어를 실행하여도 빠른 시간내에 종료되지 않은 경우가 있다. 심지어 모두 종료되지도 않았는데 killall 자체가 종료 되어버리는 경우도 있다.
이런 경우에 지정된 모든 프로세스들이 완전히 종료될 때까지 종료시도를 계속하는 옵션이 –w 이다.
[root@localhost ~]# killall -w httpd
완전히 종료될때까지 계속적으로 종료시도를 한다.
(05) killall 명령어로 특정 프로세스를 재시작하는 시그널을 보내기
[root@localhost ~]# killall -HUP httpd
07. killall5
[주의사항]
이 명령어를 함부로 사용하지 마십시요. killall5 명령어는 모든 프로세스를 종료하는 명령어이므로 시스템이 종료될 수 있습니다.
killall5 명령어는 SystemV 계열의 명령어로서 자기자신의 프로세스들을 제외한 모든 프로세스에게 특정 시그널을 보낼 수 있는 명령어이다.
이 명령어는 수퍼유저(root)만 사용하는 명령어로서 일반사용자들은 사용할 수 없는 명령어이다.
<명령어 위치> : /sbin/killall5
<사용형식> killall5 –시그널번호
(01) killall5 명령어를 사용하는 halt 스크립트 확인하기
killall5 명령어는 주로 서버를 종료시키는 halt 스크립트나 서버를 재시작시키는 reboot 명령어내에서 모든 프로세스를 중지시키기 위한 용도로 사용된다.
또한 killall5 명령어는 개별적인 사용보다는 시스템의 종료시에 사용하는 스크립트,
즉 /etc/rc.d/init.d/halt 등의 스크립트 내에서 모든 프로세르를 대상으로 종료하기 위한 목적으로 사용된다.
[root@localhost ~]# cd /
[root@localhost /]# cd /etc/rc.d/init.d
[root@localhost init.d]# ls -al halt
-rwxr-xr-x 1 root root 5766 9월 25 00:01 halt
[root@localhost init.d]# cat halt
위에서 보면 시스템을 종료하기 위하여 halt 스크립트 내에서 모든 프로세스를 종료하는 killall5 명령어가 사용된다.
(02) killall5 명령어로 모든 프로세스 종료하기
[root@localhost /]# killall5 -9
위는 root 라는 계정으로 killall5 명령어를 수행하면, 현재 서버내에서 실행중인 모든 프로세스에게
종료시그널(-9)을 보내는 예이다. 그러면 사실상 시스템은 종료되게 된다.
08. uptime
시스템 부하율을 확인할 수 있는 명령어이다.
[root@localhost ~]# uptime
14:22:20 up 24 min, 1 user, load average: 0.00, 0.01, 0.12
현재시간 : 14:22:20
시스템이 부팅후에 종료(재부팅) 없이 얼마동안 운용되었는가? : up 24 min
현재 시스템에 로그인된 사용자 수(/var/run/utmp 파일 참조함) : 1 user
각각 1분, 5분, 15분 동안의 시스템 평균 부하율 : 0.00, 0.01, 0.12
uptime 이라는 명령어는 서버관리자가 서버의 전체적인 부하율을 확인하고자 할 때에 사용한다. 또한 uptime 은 top 과 w 의 실행결과에서 맨 첫번째 행을 표시해주는 역할을 한다.
[root@localhost run]# w
14:24:41 up 26 min, 1 user, load average: 0.00, 0.00, 0.09
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.133.1 14:00 0.00s 0.54s 0.04s w
여기서 중요한 것은 결과의 맨 뒷부분 load average 이다.
uptime의 사용법을 아는 것보다는 uptime의 결과를 출력되는 결과들이 무엇을 의미하는가를 정확하게 이해하는 것이 중요하다.
Linux