我跑iotop
检查大量使用磁盘的程序,以防我需要降低它们的优先级。通常这已经足够了,但iotop
只显示线程 ID (TID),有时我想知道进程 ID (PID),以便我可以找到有关哪个进程负责的更多信息。
不幸的是,虽然ps
可以显示 TID(又名 SPID、LWP),但它没有一个标志来获取 TID 列表,就像处理 PID 列表一样--pid
。我能做的就是列出 TID,然后grep
列出输出。例如,如果线程id是792,我可以这样做
$ ps -eLf | grep ' 792 '
效果相当好,但有点不优雅。
有没有更好的办法?
答案1
你总是可以这样做:
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