在Linux上ps -eLf | grep my-process-name
给出了我的进程中的线程列表以及每个线程的TID。
在OSX上ps -M pid
为我提供了线程列表,但没有显示每个线程的TID。
如何从命令行查看单个进程下的线程TID?
答案 0 :(得分:4)
使用ps
列出所有可能的列选项时,您无法在Mac OS上看到使用ps L
的TID。
无论如何,如果你不介意将线程作为根探索,你可以使用dtruss
,它主要用于处理系统调用细节,但它至少会显示PID / LWPID中的TID (PID / THRD )专栏。
sudo dtruss -ap pid
答案 1 :(得分:0)
好吧,虽然我意识到它可能被某些人认为是亵渎神灵,但跨平台 Powershell 现在可用于 macOS,查看线程 ID 非常简单。这将起作用:
Get-Process -Id 1234 | Select-Object Threads
它会为每个适用的线程吐出一个包含大约 10 个属性的对象。其中之一是“Id”。你也可以这样做:
gps -Id 1234 | select -Expand Threads | select -Expand Id
如果您想缩短命令,然后取回 Id。