Terminal
如何線上程上執行“ps”命令?
ps 命令可以在終端中完成以查看有關程序的資訊。例如,
#list processes ps aux #with executable paths ps -ef #path for a specific process ps -p [pid]
但是,如果程序很大,則可能需要隔離各個執行緒正在執行的操作。例如,
kernel_task
。該命令sudo dtruss -ap [pid]
不是最優的,因為它需要關閉系統資源保護。有沒有辦法在ps
不關閉系統資源保護的情況下找到有關執行緒的資訊?謝謝
該
ps
命令的“-T”選項啟用執行緒視圖。# ps -T -p <pid>
例如,列出以下 java 程序的執行緒:
# ps -ef | grep 97947 deploy 97947 97942 1 00:51 ? 00:13:51 java
或者,您可以使用
top
可以顯示各個執行緒的實時視圖。要在輸出中啟用執行緒視圖,請top
使用“-H”選項呼叫 top。這將列出所有 Linux 執行緒。您還可以在執行時打開或關閉執行緒查看模式,top
方法是按“H”鍵。top - 14:43:25 up 6 days, 5:40, 2 users, load average: 0.87, 0.33, 0.22 Threads: 684 total, 1 running, 683 sleeping, 0 stopped, 0 zombie %Cpu(s): 6.3 us, 4.0 sy, 0.0 ni, 89.6 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 7910136 total, 384812 free, 1603096 used, 5922228 buff/cache KiB Swap: 8388604 total, 8239100 free, 149504 used. 5514264 avail Mem
請注意在上面的範例中如何列出系統上的執行緒數。