📌  相关文章
📜  列出进程 ubuntu 中的线程 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:07:10.778000             🧑  作者: Mango

列出进程 ubuntu 中的线程 - Shell-Bash

在 Linux 系统中,每个进程都包含一个或多个线程。如果想查看运行中的进程中的线程,可以通过命令行工具来实现。

1. 通过 ps 命令

在终端中,使用 ps 命令可以列出当前系统中所有的进程及其相关的信息。如果想列出进程中的线程,可以使用 ps -eLf 命令,其中 -e 表示列出所有进程,-L 表示列出每个进程中的线程。

$ ps -eLf

该命令会输出当前系统中所有进程及其线程的详细信息。例如:

UID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
root         1     0     1  0    1  2019 ?        00:00:04 /sbin/init
root         1     0     2  0    1  2019 ?        00:00:00 [kthreadd]
root         1     0     3  0    1  2019 ?        00:00:00 [rcu_gp]
root         1     0     4  0    1  2019 ?        00:00:00 [rcu_par_gp]
root         1     0     6  0    1  2019 ?        00:00:00 [kworker/0:0H-mm]

输出的信息包括进程的 UID、PID、PPID(父进程 ID)、LWP(线程 ID)、CPU 使用率、线程数、启动时间、终端、CPU 时间和命令。

2. 通过 top 命令

除了使用 ps 命令外,还可以使用 top 命令来查看系统中的进程和线程。top 命令可以实时更新进程和线程的信息,并且可以交互式地控制输出内容。

在终端中运行 top 命令:

$ top

top 命令的输出结果包括每个进程的 PID、用户、CPU 使用率、内存使用率等信息。想要查看进程中的线程,可以通过按下“H”键实现。这将显示进程中每个线程的相关信息。

top - 09:16:45 up 14 days,  2:38,  8 users,  load average: 0.15, 0.19, 0.12
Tasks: 333 total,   1 running, 326 sleeping,   0 stopped,   6 zombie
%Cpu(s):  1.1 us,  0.2 sy,  0.0 ni, 98.6 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 16395920 total,  1193560 free, 11443868 used,  3714492 buff/cache
KiB Swap: 16602108 total, 10926368 free,  5675732 used.  3263252 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                       
 1607 root      20   0  380108 141472  34472 S  2.6  0.9 176:53.72 Xorg                                                                                                                          
 2519 user      20   0 6254824 1.517g  79752 S  1.0  9.6   1273:10 firefox                                                                                                                       
  293 root      19  -1  168292  33680  33400 S  0.7  0.2  19:06.28 systemd-journal-d                                                                                                              
   10 root      20   0       0      0      0 S  0.3  0.0  16:49.26 rcu_sched                                                                                                                     
  373 root      20   0   18572   3908   3508 S  0.3  0.0   0:01.09 bash                                                                                                                          
    1 root      20   0  225692  12468   8848 S  0.0  0.1   0:04.27 systemd                                                                                                                       
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                      
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.02 ksoftirqd/0       
   
Tasks: 333 total,  10 running, 323 sleeping,   0 stopped,   0 zombie
%Cpu(s):  4.2 us,  0.6 sy,  0.0 ni, 94.7 id,  0.2 wa,  0.0 hi,  0.2 si,  0.0 st
KiB Mem : 16395920 total,   536568 free, 13691468 used,  2192884 buff/cache
KiB Swap: 16602108 total, 10926368 free,  5675732 used.  2931660 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  293 root      19  -1  168292  33680  33400 S  0.7  0.2  19:06.28 systemd-journal-d
 1607 root      20   0  380108 141472  34472 S  0.3  0.9 176:53.72 Xorg
  373 root      20   0   18572   3908   3508 R  0.3  0.0   0:01.11 bash
 2519 user      20   0 6254824 1.517g  79752 S  0.3  9.6   1273:40 firefox
    1 root      20   0  225692  12468   8848 S  0.0  0.1   0:04.27 systemd
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.02 ksoftirqd/0

注意,top 命令默认只显示前 20 个进程。如果需要显示更多的进程,可以按下“d”键,然后输入一个数字来指定需要显示的最大进程数。

总结

可以通过 ps 命令和 top 命令来列出 Ubuntu 中的线程。要列出进程中的线程,请使用 ps -eLf 或 top 命令,并按下“H”键。