PS能夠提供不少進程信息,比如進程號、進程運行狀態、進程名稱、所占CPU時間、所占內存等。除此以外,還有一些不很常用的進程信息,可以用來解決一些可能很常見的問題 (比如內存洩漏,進程運行異常等)。
了解這些信息畢竟要比去讀程序源碼要簡單一些,更何況有些時候根本沒有源代碼。
所打開的文件
獲取方法1:
# ls -l /proc/$PID/fd/
獲取方法2:
# lsof -p $PID
內存分配表
獲取方法:
# cat /proc/$PID/maps
堆棧
獲取方法:
# pstack $PID
所發出的系統調用
獲取方法:
# strace -p $PID
所發出的庫函數調用
獲取方法:
# ltrace -p $PID
進程繼承關系
獲取方法:
ps -eo user,pid,ppid,%cpu,%mem,vsz,rss,tty,stat,start,time,wchan,command ——forest
運行時dumpcore
獲取方法:
# gcore $PID