![从 /proc 解析进程 ID/名称、线程 ID](https://linux22.com/image/2274/%E4%BB%8E%20%2Fproc%20%E8%A7%A3%E6%9E%90%E8%BF%9B%E7%A8%8B%20ID%2F%E5%90%8D%E7%A7%B0%E3%80%81%E7%BA%BF%E7%A8%8B%20ID.png)
当我从 /proc 解析进程 ID 时,显然进程的每个线程都有自己的 ID。我意识到同一进程中的所有线程都可以从/proc/${pid}/task/
.
但我的问题是,我可以假设列表中的第一个ID(编号最小的ID?)是进程的主线程吗?
我最终想要做的目标是ps
用 python 编写一个快速脚本,而不使用子进程或调用 shell。
答案1
您不能假设进程 ID(和线程 ID)可以重用,因此无法保证顺序。 (这在新启动的 64 位系统上不太可能出现,但您会在正常运行时间较长的计算机上看到它。)
您可以从/proc/${id}/status
.就在队伍里Tgid: nnnnn
。
前任:
$ cat /proc/8288/status
Name: vlc
State: S (sleeping)
Tgid: 8281 // main vlc process id
Pid: 8288 // thread id