linux查看某个进程的线程id(spid)

摘要:
鉴于Linux中线程的广泛使用,我们如何查看进程拥有的线程ID?现在设计了许多服务。主进程-˃子进程-˃线程主进程负责监听网络上的连接并将连接发送给子进程。子进程派生线程来处理这些线程,mysql1460425333?

鉴于linux下线程的广泛使用 我们怎么查看某个进程拥有的线程id了

现在很多服务的设计 主进程->子进程->线程(比如mysql,varnish)

主进程负责侦听网络上的连接 并把连接发送给子进程 子进程派生线程去处理这些线程

mysql(父进程460,子进程863)

  1   460   425   333 ?           -1 S        0   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/storage/mysql/backup --pid-file=/storag
  460   863   425   333 ?           -1 Sl     500  21:34  \_ /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/storage/mysql/backup

1、ps 

  -T Show threads, possibly with SPID column

[root@pdd1 ~]# ps -T -p 863
  PID  SPID TTY          TIME CMD
  863   863 ?        00:00:00 mysqld
  863   865 ?        00:00:51 mysqld
  863   866 ?        00:01:14 mysqld
  863   867 ?        00:00:58 mysqld
  863   868 ?        00:00:50 mysqld
  863   869 ?        00:00:49 mysqld
  863   870 ?        00:00:52 mysqld
  863   871 ?        00:00:50 mysqld
  863   872 ?        00:00:49 mysqld
  863   873 ?        00:00:51 mysqld
  863   874 ?        00:00:48 mysqld
  863   876 ?        00:04:22 mysqld
  863   877 ?        00:07:54 mysqld
  863   878 ?        00:00:19 mysqld
  863   879 ?        00:00:00 mysqld
  863   882 ?        00:00:00 mysqld
  863   887 ?        00:00:00 mysqld
  863  2408 ?        00:00:00 mysqld
  863  2428 ?        00:00:00 mysqld

我们可以看到子进程863派生出的线程  第一行spid 863是主线程(我们知道主线程就是该进程本身)

2、top

-H : Threads toggle
Starts top with the last remembered ’H’ state reversed. When this toggle is On, all individual threads will be dis-
played. Otherwise, top displays a summation of all threads in a process.

top -H -p 863

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                               
  872 mysql     20   0  741m  56m 4972 S  0.3  5.7   0:49.11 mysqld                                                                                 
  876 mysql     20   0  741m  56m 4972 S  0.3  5.7   4:22.76 mysqld                                                                                 
  863 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:00.06 mysqld                                                                                 
  865 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:51.65 mysqld                                                                                 
  866 mysql     20   0  741m  56m 4972 S  0.0  5.7   1:14.77 mysqld                                                                                 
  867 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:58.15 mysqld                                                                                 
  868 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:50.26 mysqld                                                                                 
  869 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:49.88 mysqld                                                                                 
  870 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:52.48 mysqld                                                                                 
  871 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:50.83 mysqld                                                                                 
  873 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:51.90 mysqld                                                                                 
  874 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:48.10 mysqld                                                                                 
  877 mysql     20   0  741m  56m 4972 S  0.0  5.7   7:55.01 mysqld                                                                                 
  878 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:19.84 mysqld                                                                                 
  879 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:00.00 mysqld                                                                                 
  882 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:00.00 mysqld                                                                                 
  887 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:00.58 mysqld                                                                                 
 2408 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:00.00 mysqld                                                                                 
 2428 mysql     20   0  741m  56m 4972 S  0.0  5.7   0:00.06 mysqld

3、pstree

[root@pdd1 ~]# pstree -Aup -h 460
mysqld_safe(460)---mysqld(863,mysql)-+-{mysqld}(865)
                                     |-{mysqld}(866)
                                     |-{mysqld}(867)
                                     |-{mysqld}(868)
                                     |-{mysqld}(869)
                                     |-{mysqld}(870)
                                     |-{mysqld}(871)
                                     |-{mysqld}(872)
                                     |-{mysqld}(873)
                                     |-{mysqld}(874)
                                     |-{mysqld}(876)
                                     |-{mysqld}(877)
                                     |-{mysqld}(878)
                                     |-{mysqld}(879)
                                     |-{mysqld}(882)
                                     |-{mysqld}(887)
                                     |-{mysqld}(2408)
                                     `-{mysqld}(2428)

免责声明:文章转载自《linux查看某个进程的线程id(spid)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇tensorflow与numpy的版本兼容性问题Nginx教程[归档]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

学习使用Apollo配置中心

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端。Apollo官网地址如何安装服务端可以按照上面官网的步骤。这里主要说明一下应用如何接入apollo。...

MySQL的安装、配置文件和初始化

MySQL基于源代码的安装本文以MySQL5.1.73+Centos6.5作为安装演示,其他版本安装方法大同小异。首先下载MySQL5.1.73的源代码包。比如MySQL5.1.73,安装在目录/usr/local/myql-5.1.73,然后做一个软连接/usr/local/mysql指向真正的版本路径。进行到此,MySQL库以及可执行程序已经编译出来,可...

CSS-顶部滚动进度条

Documentbody{background-image:linear-gradient(torighttop,#f0050%,#ece50%);background-repeat:no-repeat;height:300vh;position:relative;background-size:100%calc(100%-100vh+5px);}body:...

如何在Java应用中提交Spark任务?

我丈夫是一个用户定义的ID,作为参数传递给Spark应用程序;Spark初始化后,可以通过SparkContext_ ID和URL通过驱动程序连接到数据库,新版本关联关系的插入归因于互联网时代的信息爆炸。我看到了群友的聊天,了解了SparkLauncher。经过调查,我发现它可以基于Java代码自动提交Spark任务。因为SparkLauncher的类引用了...

CorelDRAW 编写和运行宏指令

在开发和运行CorelDRAW宏之前,必须安装VBA组件。在CoerlDRAW11和12中安装CorelDRAWVBAVBA是典型安装的一部分。2如果安装开始,请单击安装CorelDRAW12 Graphics Suite。CorelDRAWVBA工具栏CorelDRaw工具栏提供了几个快速的VBA函数和对VB编辑器的访问。但是,您可以通过在CorelDRA...

flutter vscode+第三方安卓模拟器

1.首先打开夜曲模拟器2.Win+R,选择cmd,在第三方模拟器安装目录的bin目录下输入夜曲模拟器,然后运行命令:nox_Adb.execonnect127.0.0.1:620013。打开项目终端的vscode并建立连接:adbconnect127.00.1:62001(夜神模拟器的默认端口)4。查看连接:adbdevices或不使用第三方模拟器:1.打开...