Ps

從 TID 獲取 PID

  • March 15, 2018

我跑去iotop檢查那些重度磁碟使用者的程序,以防我需要降低它們的優先級。通常這已經足夠了,但iotop只顯示執行緒 ID (TID),有時我想知道程序 ID (PID),以便了解更多關於哪個程序負責。

不幸的是,雖然ps可以顯示 TID(又名 SPID,LWP),但它沒有一個標誌來獲取 TID 列表,就像它對帶有--pid. 我能做的最好的就是列出 TID,然後grep是輸出。例如,如果執行緒 id 是 792,我可以這樣做

$ ps -eLf | grep ' 792 '

它工作得相當好,但有點不雅。

有沒有更好的辦法?

你總是可以這樣做:

ps -eLo pid= -o tid= | awk '$2 == 792 {print $1}'

在 Linux 上:

$ readlink -f /proc/*/task/792/../..
/proc/300

或與zsh

$ echo /proc/*/task/792(:h:h:t)
300

引用自:https://unix.stackexchange.com/questions/430428