Bash: 简单的方法来知道是否有指定线程id的线程?

Bash: Easy way to know whether there is a thread with specified thread id?

我需要知道是否有指定线程 ID 的线程。也许我可以查看所有进程的线程并查看它是否存在,或者使用 ps 命令获取所有线程列表并尝试在输出中查找线程,但是没有更简单的方法吗?

我假设你在 Linux?

如果您知道进程 ID,您可以使用 proc 文件系统来确定某个线程是否存在。

示例:

进程 ID $PID 14456

线程 ID $TID 14465

如果目录/proc/$PID/task/$TID存在,线程是运行。

如果您不知道进程 ID,可以让 shell 为您进行 globbing:

if [ -d /proc/*/task/$TID ]; then echo found; fi