*** 프로세스 상태 추적 관리 ***
프로세스의 상태를 체크하기 위해 ps 명령어나 proctool, top 등을 써 보았을 것입니다.
그런데 많은 분들이 유용하게 사용할 수 있는 명령어들을 몰라서 소개해 놓았습니다.
프로세스를 관리하는 명령어들이 /usr/proc/bin에 있으므로 PATH를 추가하면 이후 내용을
해보기가 쉽겠죠.
본,콘쉘 상태에서
#PATH=/usr/proc/bin:$PATH;export PATH
1. ptree :프로세스 트리구조를 보여준다
# ps -ef |grep netscape 해서 나온 결과가
dol 669 655 82 18:58:20 ? 65:55 /opt/netscape/netscapehttp://www.sunworld.com/
프로세스 아이디가 669번 이므로
#ptree 669
269 /usr/dt/bin/dtlogin -daemon
541 /usr/dt/bin/dtlogin -daemon
561 /bin/ksh /usr/dt/bin/Xsession
613 /usr/dt/bin/sdt_shell -c unset DT; DISPLAY=:0; /usr/dt/bin/dt
616 -ksh -c unset DT; DISPLAY=:0; /usr/dt/bin/dtsession_res -merg
655 /usr/dt/bin/dtsession
669 /opt/netscape/netscapehttp://www.sunworld.com/
676 (dns helper)
위의 결과를 보면 269번 dtlogin이 dtlogin을 생성한뒤 dtlogin이 561번을
생성 561번이 613을 등등등.... 669번의 netscape 가 676번을 호출한 것을 알 수 있다.
2. pstop : 프로세스를 정지한다
#pstop 669
netscape 을 잠시 정지한다
3. prun : 프로세스를 다시 시작한다
#prun 669
netscape 을 다시 시작한다
4 pcred : 프로세스의 보안정보 표시
#pcred 669
669: e/r/suid=101 e/r/sgid=14
effective,real saved(u/g)id를 표시한다.
5. 프로세스의 메모리 맵상의 정보 표시
#pmap 669
669: /opt/netscape/netscapehttp://www.sunworld.com/
00010000 13124K read/exec /opt/netscape/netscape
00CF0000 988K read/write/exec /opt/netscape/netscape
00DE7000 15816K read/write/exec [ heap ]
EEE60000 8K - [ anon ]
메모리 주소번지와 메모리 세그먼트의 사이즈를 표시한다.
6. pflags : 프로세스와 플래그 정보, 시그널 핸들링 상태 등을 표시
#pflags 669
669: /opt/netscape/netscapehttp://www.sunworld.com/
data model = _ILP32 flags = PR_ORPHAN
/1: flags = PR_PCINVAL|PR_ASLEEP [ poll(0xef201a00,0x5,0xa603) ]
sigmask = 0x00002000,0x00000000 lwppend = 0x00002000,0x00000000
플래그와 시그널 핸들링 상태 등을 표시한다 .
7. pldd : 다이나믹 라이브러리에 링크된 정보 표시
#pldd 669
669: /opt/netscape/netscapehttp://www.sunworld.com/
/usr/dt/lib/libXm.so.3
/usr/openwin/lib/libXt.so.4
/usr/openwin/lib/libXmu.so.4
/usr/openwin/lib/libXext.so.0
/usr/openwin/lib/libX11.so.4
...
링크된 다이나믹 라이브러리들 표시해준다.
8. ptime : 수행 시간 표시
#ptime ls
dtdbcache_:0 ps_data sdtvolcheck677 speckeysd.lock
real 0.166
user 0.029
sys 0.057
실제 수행시간, 유저프로세스시간, 시스템 프로세스 시간을 보여 준다 .
9. pfiles : open한 파일 표시
#pfiles 669
669: /opt/netscape/netscapehttp://www.sunworld.com/
Current rlimit: 64 file descriptors
0: S_IFCHR mode:0620 dev:32,24 ino:76843 uid:101 gid:7 rdev:24,2
O_RDWR|O_LARGEFILE
1: S_IFCHR mode:0666 dev:32,24 ino:76599 uid:0 gid:3 rdev:13,2
해당 프로세스와 연관된 파일들과 열수 있는 파일갯수를 확인 할 수 있다.
10. pwdx 프로세스의 현재 디렉토리 표시
#ps -e |grep cmdtool
#pwdx 669
669: /w/dol
11. pwait : 프로세스가 끝날 때까지 기다림
#ps -e | grep cmdtool
273 console 0:01 cmdtool
281 console 0:01 cmdtool
중간에 281을 kill 한다
# pwait -v 281
281: terminated, wait status 0x0000
12. psig : 프로세스의 시그널 처리 성향 표시
#psig 669
669: /opt/netscape/netscapehttp://www.sunworld.com/
HUP caught 0
HUP,INT,QUIT,ILL,TRAP,ABRT,EMT,FPE,BUS,SEGV,SYS,PIPE,ALRM,TERM,USR1,USR
2,CLD,PWR,WINCH,URG,POLL,TSTP,CONT,TTIN,TTOU,VTALRM,PROF,XCPU,XFSZ,W
AITING,LWP,FREEZE,THAW,CANCEL,LOST,RTMIN ....
시그널 처리 성향을 보여준다.
13. pstack : 스택의 점유상태 표시
#pstack 669
669: /opt/netscape/netscapehttp://www.sunworld.com/
ef31437c poll (ef201a00, 5, 29bb)
ef2ce3dc select (ef201a28, ef201c70, ef334ffc, ef201c74, ef335000, 1d) + 298
Hex값과 심볼릭 값으로 스택에 있는 상태 표시, 만일 문제가 생긴 프로세스이면 어디에서 프로세스가 정지 했는지 확인 할 수 있다.
'Unix Linux' 카테고리의 다른 글
Solaris Reference Manual Collection (0) | 2005.11.09 |
---|---|
[펌] 솔라리스 어드민 요약 문서 (0) | 2005.11.09 |
[WIN] 병목현상 측정을 위한 핵심 카운터 (0) | 2005.10.19 |