Мне нужно знать, есть ли поток с указанным идентификатором потока. Вероятно, я могу посмотреть на все потоки процесса и посмотреть, существует ли он, или получить список потоков с помощью команды ps и попытаться найти поток в выводах, но нет ли более простого способа?Bash: простой способ узнать, есть ли поток с указанным идентификатором потока?
1
A
ответ
1
Я предполагаю, что вы находитесь в Linux?
Если вы знаете идентификатор процесса, вы можете использовать файловую систему proc, чтобы выяснить, существует ли определенный поток или нет.
Пример:
Идентификатор процесса $ PID 14456
ID потока $ TID 14465
Если каталог /proc/$PID/task/$TID
существует, нить работает.
Если вы не знаете идентификатор процесса вы можете позволить скорлупе сделать подстановку для вас:
if [ -d /proc/*/task/$TID ]; then echo found; fi
+0
Отлично! Я знал о '/ proc', но не о'/proc/
Вы можете иметь вид [здесь] (http://superuser.com/questions/632979/if-i-know-the-pid-number-of-a-process-how-can-i-get-its-name) – sjsam
Я имею в виду поток, а не процесс – user1289
Разбираем вывод 'ps -eLf '. Источник: https://superuser.com/questions/80556/how-do-you-view-all-threads-running-on-linux – neuhaus