От man tgkill
:
tgkill() отправляет сигнал sig потоку с идентификатором потока tid в группе потоков tgid. (Напротив, kill (2) может использоваться только для отправки сигнала процессу (то есть группе потоков) в целом, и сигнал будет доставлен в произвольный поток внутри этого процесса.)
Что только оставляет нас вопросом о том, что сигнал 0 представляет. Ответ, ни один вообще:
Если у вас есть идентификатор процесса, но вы не уверены, действителен ли он, вы можете использовать для проверки его наиболее вероятного кандидата: команду kill. Если вы не видите ссылки на это на справочной странице kill(1), проверьте информационные страницы. Страница man/info утверждает, что сигнал 0 является особым и что код выхода из kill указывает, может ли сигнал быть отправлен указанному процессу (или процессам).
Таким образом, вызовы tgkill
проверяют существование различных потоков в рамках любого процесса, который вы отслеживаете с помощью strace
. Возвращаемое значение 0 указывает, что протестированные потоки существуют; вопрос, на который нужно ответить сейчас: почему процесс зацикливается на тесте? (Я предполагаю, что это то, что он делает, во всяком случае; вероятно, если бы он когда-либо делал что-то еще, что вы видели, вы бы упомянули об этом в своем вопросе.)