http://util.dicnote.com/bbs/board.php?bo_table=util_info&wr_id=96
http://target2u.blogspot.com/2007/01/ps.html
시스템에서 현재 수행되고 있는 프로세스를 확인하는 기초 명령어 되겠다.
보통 어떤 프로그램을 설치하고 실행시킨 후 이게 제대로 작동하나를 확인하기 위해서 혹은
음. 관리자의 직감으로 보건데 뭔가 꺼림찍한게 서버에서 돌고 있는것 같아..! 하는 생각을 확인해보기 위함이다.
실행 프로그램명을 알고 있을 경우 보통
ps -ef | grep 프로그램명
을 통해 확인한다.
ex)
[root@agentlinux ~]# ps -ef | grep sshd
root 11916 31937 0 11:06 ? 00:00:00 sshd: linuxer [priv]
linuxer 11918 11916 1 11:06 ? 00:04:40 sshd: linuxer@pts/1
root 17150 31937 0 17:15 ? 00:00:00 sshd: root@pts/0
root 17180 17152 0 17:16 pts/0 00:00:00 grep sshd
root 31937 1 0 Sep17 ? 00:00:00 /usr/sbin/sshd
[root@agentlinux ~]#
이 경우 PID 31937의 sshd 데몬이 떠있고 sshd를 통해 세명이 접속해있다.. 정도로 볼 수 있겠다-_-;
프로세스가 없이 OS 자체가 존재할 수 없을 정도로 중요한 부분이므로
ps 명령어 역시 무지하게 많은 옵션이 있다.
옵션의 큰 분류로는
1
'-'를 맨 앞에 붙여 그룹지어 사용하는 유닉스 옵션
2
'-'없이 그룹지어 사용하는 BSD 옵션
3
'--'를 맨 앞에 붙여 사용하는 기다란 GNU 옵션
되겠다.
자유롭게 섞어 사용할 수 있지만 서로 상반되는 속성을 가진 옵션끼리 사용될 때 충돌이 일어날 수 있다.
사용 예를 보겠다.
표준 방법을 사용해서 시스템의 모든 프로세스를 보려면:
ps -e
ps -ef
ps -eF
ps -ely
-e : 모든 프로세스(-A와 같다)
-f : full format으로 보여준다(자세히 보여준다)
-F : 더 자세히 보여준다
-l : long format으로 보여준다는데 그다지 좋지 않아보인다(좀 잘리는듯-_-)
-y : flag를 안보여준다. -l 옵션하고만 사용할 수 있다고 한다;
BSD 방법을 사용해서 시스템의 모든 프로세스를 보려면:
ps ax
ps axu
프로세스를 트리형식으로 출력하려면
ps -ejH
ps axjf
스레드 관련한 정보를 얻으려면:
ps -eLf
ps axms
보안 정보를 얻으려면:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps -eM
사용자 형식으로 모든 root(real & effective ID)로 실행중인 프로세스를 보려면:
ps -U root -u root u
-U : real UID
-u : effective UID
u : display user-oriented format
직접 정의한 형식으로 프로세스를 출력하려면:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
syslogd의 PID만 출력하려면:
ps -C syslogd -o pid=
PID가 42인 프로그램 이름만 출력하려면:
ps -p 42 -o comm=
복잡한걸 다 외우고 할 수도 없고 그냥 두개만 딱 정했다.
ps -ef
: 전체 다 보기
ps -f -U USERID -u USERID
: ID가 USERID인 사람으로 돌아가는 프로세스 보기
이 외에는 필요할 때 찾아보며 해야겠다-_-
********* 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
[출처] ps 명령어의 활용 (코드토커) |작성자 에디
'리눅스 > 명령어' 카테고리의 다른 글
[리눅스] route (0) | 2012.01.25 |
---|---|
[리눅스] LVM / xfs 파일시스템 생성 (0) | 2012.01.25 |
[리눅스] 기본명령어 모음 참고 (0) | 2012.01.18 |
[리눅스] 하드디스크 정보 알기 / 추가,포멧,파티션 (0) | 2012.01.18 |
[리눅스] kill (2) | 2012.01.16 |