从Bash中的PID获取TID列表

时间:2014-01-28 21:19:27

标签: linux bash pid

有时候我想要判断是否存在TID(线程标识符),以便我可以看到它何时完成。例如,假设我在nautilus中制作了一个大型文件副本。然后我意识到它需要花费3个小时(假设我意识到太晚了,我不想取消并从CL中做出来)。在Nautilus完成复制后,我想告诉我的电脑关机。如果有大的I / O(当然会有文件副本),我可以使用iotop,并且很好地给了我TID。我怎样才能完成TID的整理?另外,假设一个线程没有做很多I / O.我怎样才能得到它的TID?我知道如何获取PID(例如pscat /proc/<PID>/status),当只有一个线程时,TID与PID相同,但如果有多个线程怎么办? / p>

以下是我对PID进行调整的方法:

while ps aux | grep [2]9228 > /dev/null; do sleep 20s; done; echo "Process Finished"

2 个答案:

答案 0 :(得分:4)

我认为此问题具体为,而不是

/proc/<PID>/task/包含一个目录列表,给定进程中每个线程一个。

答案 1 :(得分:0)

您还可以使用ps获取TID。

脚本友好命令(仅TID,每行一个,没有标题行):

ps -L --pid <PID> -o tid=

或者,为了更加详细:

ps -L --pid <PID> -O tid