Я читал, что kill небезопасно в отношении сигналов здесь .
Что еще мне следует использовать, если я хочу уничтожить дочерний процесс как часть очистки внутри моего обработчика сигнала? Каковы мои альтернативы?
Вы неправильно прочитали, на этой странице написано, что kill() (и все остальное в таблице) должно быть безопасным при асинхронном сигнале. все, что не в таблице, считается небезопасным.
kill()