OS/Linux

좀비 User/process kill

아르비스 2010. 5. 27. 11:35

간혹 사용하다가. network 불안정이나, 창이 닫히는 문제로
정상 logout을 못하고 종료하는 경우가 발생한다.
이경우, 해당 User(process)는 죽지 않고, rebooting 시점까지 살아 있게 된다.
이런 경우 죽이는 방법은 다음과 같다.

$ who (finger)
  현재 접속 중인 사람을 확인한다.

$ ps -u 
  현재 사용자가 접속후 사용한 process(혹은 좀비 proc)를 확인한다.

1) ps
- 실행중인 프로세스 목록을 확인
[root@linux ~]# ps -ef | grep 프로세스이름  # 프로세스가 실행중인지 확인하는 명령
[root@linux ~]# ps ux    # 현재 사용자가 로그인 후 실행한 프로세스를 확인.
[root@linux ~]# ps aux    # 현재 사용자 권한으로 실행 중인 모든 프로세스를 확인

$ ps -u
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
1002      9326  0.0  0.0   6144  3444 pts/3    Ss   11:06   0:00 -bash
1002     17632  0.0  0.0   2464   936 pts/3    R+   11:23   0:00 ps -u
1002     26527  0.0  0.0   6204  3524 pts/4    Ss+  10:45   0:00 -bash

 정지 시키고자 하는 PID를 확인 후

$ kill PID  혹은 kill -9 PID 를 실행한다.

1) kill
- 실행중인 프로세스를 종료하는 명령
[root@linux ~]# kill 프로세스ID(PID)   # 실행중인 프로세스 종료. 다중 프로세스는 종료불가
[root@linux ~]# kill -9 pid    # 실행중인 프로세스 강제 종료. 다중 프로세스도 종료

중복 계정일 경우 Kill PID는 적용 되지 않으므로, 

$ kill -9 PID


 를 사용하여 해당 process를 종료시킨다.

-ps option -
********* simple selection *********  ********* selection by list *********
-A all processes                      -C by command name
-N negate selection                   -G by real group ID (supports names)
-a all w/ tty except session leaders  -U by real user ID (supports names)
-d all except session leaders         -g by session OR by effective group name
-e all processes                      -p by process ID
T  all processes on this terminal     -s processes in the sessions given
a  all w/ tty, including other users  -t by tty
g  OBSOLETE -- DO NOT USE             -u by effective user ID (supports names)
r  only running processes             U  processes for specified users
x  processes w/o controlling ttys     t  by tty
*********** output format **********  *********** long options ***********
-o,o user-defined  -f full            --Group --User --pid --cols --ppid
-j,j job control   s  signal          --group --user --sid --rows --info
-O,O preloaded -o  v  virtual memory  --cumulative --format --deselect
-l,l long          u  user-oriented   --sort --tty --forest --version
-F   extra full    X  registers       --heading --no-heading --context
                    ********* misc options *********
-V,V  show version      L  list format codes  f  ASCII art forest
-m,m,-L,-T,H  threads   S  children in sum    -y change -l format
-M,Z  security data     c  true command name  -c scheduling class
-w,w  wide output       n  numeric WCHAN,UID  -H process hierarchy