Como posso listar informações sobre um thread/LWP por ps
?
Por que não posso fazer isso simplesmente por:
$ ps 10173
PID TTY STAT TIME COMMAND
$ ps -L 10173
PID LWP TTY STAT TIME COMMAND
O melhor que posso fazer
$ ps -eL | grep 10173
10172 10173 pts/8 00:00:00 java
É um LWP porque
$ 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
e
$ 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
Obrigado.
Se você quiser ver apenas esse processo LWP,
ps -e -q 10172
. Se você quiser ver todos os tópicos relacionados, você pode fazerps -eL -q 10172
Então, por exemplo, na minha máquina
rsyslog
tem threads:Eu posso ver um único segmento (por exemplo, 22320)
Observe que mostra o PID principal do processo.
Eu posso ver todo o processo relacionado para esse segmento:
Outra maneira de encontrar LWP ou ID de thread.
Eu abri o editor vi em dois arquivos de amostra a.txt e b.txt
LWP = Processo leve ou ID da rosca NLWP = Número do processo leve
Você pode ver o ID do thread (LWP) "2662|2663" para PIDs "2662|2663" respectivamente.
A partir da saída acima, você pode ver que todos esses processos têm o mesmo número PID (1470). No entanto, eles têm um número único de identificação de thread (1470, 1471, 1472, 1473, 1474).
No Linux, esses números de identificação de thread são indicados por LWP (o nome da coluna de comando ps também é LWP). LWP significa Processo Leve.
Na verdade... No linux, todo programa tem pelo menos um thread.