ps
带有该标志的命令输出-T
SPID 列,也称为 TID(线程 ID)。但 SPID 代表什么?
源代码ps
似乎也不知道为什么这个名字是:
trace("-T adds strange SPID column (old sproc() threads?)\n");
https://gitlab.com/procps-ng/procps/-/blob/newlib/src/ps/parser.c#L320
答案1
答案2
procps 中的 SPIDps
显示 TID 或线程 ID。与显示进程或线程进程 ID 的 PID 和 TGID 列相反。
一个进程具有相同的进程 ID 和线程 ID。该进程的任何线程也将共享进程 ID,但线程 ID 不同。
$ ps -L -o pid,tgid,tid,spid,cmd 232810
PID TGID TID SPID CMD
232810 232810 232810 232810 /usr/libexec/gnome-terminal-server
232810 232810 232811 232811 /usr/libexec/gnome-terminal-server
232810 232810 232813 232813 /usr/libexec/gnome-terminal-server
232810 232810 232814 232814 /usr/libexec/gnome-terminal-server
有主进程232810,然后是三个线程232811、232813和232814。
tid 和 spid 是别名,它们都调用相同的函数来打印相同的值。区别在于 SPID 来自 SGI 操作系统,而 TID 来自 AIX。