Process如何通過
如何通過 ps
列出有關執行緒/LWP 的資訊?
如何列出有關執行緒/LWP 的資訊
ps
?為什麼我不能簡單地這樣做:
$ ps 10173 PID TTY STAT TIME COMMAND $ ps -L 10173 PID LWP TTY STAT TIME COMMAND
我能做的最好的
$ ps -eL | grep 10173 10172 10173 pts/8 00:00:00 java
這是一個 LWP,因為
$ ps -L 10172 PID LWP TTY STAT TIME COMMAND 10172 10172 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10173 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10174 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10175 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10176 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10177 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10178 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10179 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10180 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10181 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10182 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10183 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10184 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10185 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10186 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10187 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10188 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10189 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main 10172 10190 pts/8 Tl 0:00 java -cp target com.mycompany.app.Main
和
$ pstree -pau -l -G -s 10172 systemd,1 splash └─lxterminal,3194,t └─bash,12150 └─java,10172 -cp target com.mycompany.app.Main ├─{java},10173 ├─{java},10174 ├─{java},10175 ├─{java},10176 ├─{java},10177 ├─{java},10178 ├─{java},10179 ├─{java},10180 ├─{java},10181 ├─{java},10182 ├─{java},10183 ├─{java},10184 ├─{java},10185 ├─{java},10186 ├─{java},10187 ├─{java},10188 ├─{java},10189 └─{java},10190
謝謝。
如果您只想查看該 LWP 程序,
ps -e -q 10172
. 如果你想查看所有相關的執行緒,那麼你可以這樣做ps -eL -q 10172
因此,例如,在我的機器上
rsyslog
有執行緒:PID LWP TTY TIME CMD 22316 22316 ? 00:00:00 rsyslogd 22316 22318 ? 00:02:23 in:imjournal 22316 22319 ? 00:00:00 in:imudp 22316 22320 ? 00:00:07 in:imtcp 22316 22321 ? 00:00:00 in:imtcp 22316 22322 ? 00:00:00 in:imtcp 22316 22323 ? 00:00:00 in:imtcp 22316 22324 ? 00:00:00 in:imtcp 22316 22325 ? 00:00:24 rs:main Q:Reg
我可以看到一個執行緒(例如 22320)
% ps -e -q 22320 PID TTY TIME CMD 22316 ? 00:02:55 in:imtcp
請注意,它顯示了程序的主 PID。
我可以看到該執行緒的所有相關程序:
% ps -eL -q 22320 PID LWP TTY TIME CMD 22316 22316 ? 00:00:00 rsyslogd 22316 22318 ? 00:02:23 in:imjournal 22316 22319 ? 00:00:00 in:imudp 22316 22320 ? 00:00:07 in:imtcp 22316 22321 ? 00:00:00 in:imtcp 22316 22322 ? 00:00:00 in:imtcp 22316 22323 ? 00:00:00 in:imtcp 22316 22324 ? 00:00:00 in:imtcp 22316 22325 ? 00:00:24 rs:main Q:Reg