pstack
pstack pid
顯示某個進程的棧跟蹤,必須在對應的用戶組或root下操作。
[wuchunlai@s1 ~]$ sudo -u work pstack $(pgrep cc_engine)
Thread 3 (Thread 0x7fb3467ff700 (LWP 6130)):
#0 0x000000370cae5d03 in epoll_wait () from /lib64/libc.so.6
#1 0x000000000042af06 in cc_loop_run ()
#2 0x0000000000418019 in cc_single_send_start ()
#3 0x000000370ce077f1 in start_thread () from /lib64/libpthread.so.0
#4 0x000000370cae570d in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7fb345dfe700 (LWP 6131)):
#0 0x000000370caaab9d in nanosleep () from /lib64/libc.so.6
#1 0x000000370caaaa10 in sleep () from /lib64/libc.so.6
#2 0x00000000004083b1 in cc_collect_log ()
#3 0x000000370ce077f1 in start_thread () from /lib64/libpthread.so.0
#4 0x000000370cae570d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7fb346ca2840 (LWP 6128)):
#0 0x000000370ca32c34 in sigsuspend () from /lib64/libc.so.6
#1 0x0000000000433d42 in cc_sig_wait ()
#2 0x000000000040600c in cc_client_process ()
#3 0x0000000000405be2 in cc_run ()
#4 0x0000000000405c2a in main ()
pstree
pstree
以樹狀結構顯示所有進程的關係,只顯示進程名字,並且相同進程合併。
pstree -p
顯示所有的進程,並添加進程號
pstree -p
顯示進程PID爲的進程以及子孫進程,如果有-p則顯示每個進程的PID。
pstree -a
相同名稱進程不合並,並且會顯示命令行參數
pstree
可以跟一個用戶參數,表示顯示哪個用戶的進程列表。
因爲pstree輸出的信息可能比較多,所以最好與more/less配合使用。
[wuchunlai@s1 ~]$ pstree -p $(pgrep cc_engine)
cc_engine(6128)─┬─{cc_engine}(6130)
└─{cc_engine}(6131)
ps
-A/e 列出所有的進程
-a 顯示一個終端的所有進程,除了會話引線
-d 顯示所有進程,省略所有回話引線
-x 顯示沒有控制終端的進程,同時顯示各個命令的具體路徑。dx不可合用。
-w 顯示加寬可以顯示較多的資訊
-f 列出全部選項
-o 用戶自定義格式 pid/uname/pcpu/pmem/rsz/comm
-p pid 顯示pid使用的cpu時間
-u uid/user 選擇用戶
-g gid/group 選擇組
-C name 選擇進程
–sort=-pcpu,+pmem 根據後加選項進行排序,-表示降序+表示升序
ps aux == ps -ef 列出所有進程
ps -fC … == ps -ef | grep …