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
我需要知道是否有指定线程 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