Я на Centos 4 и использую kill(pid, 0) в своей программе на C++, чтобы проверить, есть ли в настоящее время процесс, работающий с данным pid. Я начинаю подозревать, что существует состояние гонки, при котором вскоре после запуска процесса есть небольшой промежуток времени, в течение которого kill(pid, 0) не возвращает ноль, хотя на самом деле процесс запущен.
Это известная проблема? Будет ли kill() когда-либо возвращать ненулевое значение, если pid действительно существует, но только что запущен? Если kill() не является надежным для проверки существования, есть ли лучший способ выполнить этот тест?