且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Linux 下查看线程信息

更新时间:2022-09-06 22:51:49

1. 使用 pstree -p PID

ps aux | grep firefox | grep -v grep
charles  26058  0.0  0.0   4908  1152 ?        S    19:17   0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh /usr/lib/firefox-3.5.4/firefox

 

charles  26073  7.6  3.4 284264 70164 ?        Sl   19:17   4:36 /usr/lib/firefox-3.5.4/firefox

pstree -p 26058

 

run-mozilla.sh(26058)───firefox(26073)─┬─{firefox}(26074)
                                                                             ├─{firefox}(26075)
                                                                             ├─{firefox}(26076)
                                                                             ├─{firefox}(26085)
                                                                             ├─{firefox}(26086)
                                                                             ├─{firefox}(26087)
                                                                             ├─{firefox}(26092)
                                                                             └─{firefox}(26403)
  2.使用 /proc

cd /proc/26073/task

ls
26073  26074  26075  26076  26085  26086  26087  26092  26403

 

3. 使用 top 命令:

top -p 26073

 

然后press shift + h:

 

Tasks:   9 total,   0 running,   9 sleeping,   0 stopped,   0 zombie
Cpu(s): 10.3%us,  5.3%sy,  0.0%ni, 84.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2053032k total,   689696k used,  1363336k free,    37212k buffers
Swap:  2097140k total,   121804k used,  1975336k free,   314864k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                   
26073 charles   20   0  277m  67m  24m S  1.0  3.4   4:47.01 firefox                                                   
26074 charles   20   0  277m  67m  24m S  0.0  3.4   0:01.41 firefox                                                   
26075 charles   20   0  277m  67m  24m S  0.0  3.4   0:00.12 firefox                                                   
26076 charles   20   0  277m  67m  24m S  0.0  3.4   0:14.60 firefox                                                   
26085 charles   20   0  277m  67m  24m S  0.0  3.4   0:00.00 firefox                                                   
26086 charles   20   0  277m  67m  24m S  0.0  3.4   0:00.00 firefox                                                   
26087 charles   20   0  277m  67m  24m S  0.0  3.4   0:03.51 firefox                                                   
26092 charles   20   0  277m  67m  24m S  0.0  3.4   0:00.06 firefox                                                   
26403 charles   20   0  277m  67m  24m S  0.0  3.4   0:00.00 firefox

 

4. 使用 ps -eLf

 

5. 检查线程占用的内存

cat /proc/statm

 

6. 使用命令:

 

ps -Lo pid,ppid,pgid,nlwp,lwp,stat,command -p PID
[plain] view plain copy
 
 print?
  1. $ ps -Lo pid,ppid,pgid,nlwp,lwp,stat,command -p 2053  
  2.   PID  PPID  PGID NLWP   LWP STAT COMMAND  
  3.  2053     1  1830    2  2053 Sl   /usr/lib/zeitgeist/zeitgeist-fts  
  4.  2053     1  1830    2  2054 Sl   /usr/lib/zeitgeist/zeitgeist-fts  


7.自己编写一个脚本:

 

 

[plain] view plain copy
 
 print?
  1. $ cat /home/charles/listThread.sh  
  2. #!/bin/bash  
  3. cd /proc/$1/task;  
  4. list=$(ls);  
  5. #echo $list;  
  6. printf "%-15s %-5s %7s %7s\n" Name State Pid Tid  
  7. for task in $list; do  
  8. list=$(cat $task/status | awk 'NR <= 4 {printf "%s\n", $2}');  
  9. list2=$(echo $list | tr '\n' ' ');  
  10. echo $list2 | awk '{printf "%-15s %-5s %7s %7s\n", $1, $2, $3, $4}'  
  11. done  
[plain] view plain copy
 
 print?
    1. $ /home/charles/listThread.sh 2053  
    2. Name            State     Pid     Tid  
    3. zeitgeist-fts   S        2053    2053  
    4. gdbus           S        2053    2054