AIXで次のコマンドを実行した場合:
22:root@SERVER:/root # ps -ef | head -1
UID PID PPID C STIME TTY TIME CMD
22:root@SERVER:/root # ps -ef | grep defunct | head -1
foo 9364552 7975688 0 0:00 <defunct>
私は状態のこのプロセスを見つけました<defunct>
。kdb
プロセスのPIDを見ると、カーネルデバッガが実行されます。
22:root@SERVER:/root # kdb
WARNING: Version mismatch between unix file and command kdb
START END <name>
0000000000001000 0000000004160000 start+000FD8
F00000002FF47600 F00000002FFDF9C8 __ublock+000000
000000002FF22FF4 000000002FF22FF8 environ+000000
000000002FF22FF8 000000002FF22FFC errno+000000
F1000F0A00000000 F1000F0A10000000 pvproc+000000
F1000F0A10000000 F1000F0A18000000 pvthread+000000
read vscsi_scsi_ptrs OK, ptr = 0x0
(0)> tpid -d 9364552
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+05FE00 1534 <zombie> ZOMB 5FE00AD 03C 5 0
SLOT
どちらを占有しているかを確認し、start
次のプロセスを確認してください。
(0)> u 1534 | grep -i start
(0)> where 1534
thread F1000F0A1005FE00 not loaded
(0)>
(0)> exit
STIME
進行過程と関連はないようです。
私のシステムに関する追加情報は次のとおりです。
22:root@SERVER:/root # oslevel -s
6100-08-03-1339
22:root@SERVER:/root # uname
AIX
<defunct>
私のプロセスに関する追加情報:
22:root@SERVER:/root # procstack 9364552
procstack: 9364552 is a kernel process
22:root@SERVER:/root # proctree 9364552
7975688 /foo/foobinary
9364552
私の質問:死んだプロセスの「ps」コマンドにはSTIMEはありません。開始時間を知る方法はありますか?
答え1
ps -fp <pid>
この情報は通常あなたに提供されます
# ps -fp 6357210
UID PID PPID C STIME TTY TIME CMD
root 6357210 1 35 15:25:31 - 3:03 nfsd
答え2
ps -el | grep "Z"
これにより、AIXサーバー上のすべてのゾンビプロセスが表示されます。最後の2番目の列には、開始から経過した時間が表示されます。
$ ps -el | grep 'Z'
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
250005 Z 150921 18284566 21102640 0 60 20 :00 <defunct>