Имеется процесс, который работает следующим образом.1. Делает fork().
2. Ждет, пока ребенок завершится, и продолжает работу.
Проблема в следующем. Родительскому процессу время от времени могут приходить разнообразные сигналы (TERM, HUP, ALRM и т.д. - сколько угодно). Заранее знать, что это за сингалы, нельзя (они устанавливаются на другом слое абстракции). Нужно эти сигналы (все, сколько бы их ни было!) передавать ребенку, а самому - сидеть и ничего не делать, только ждать его окончания.
С другой стороны, при создания ребенка ему нужно установить все те же самые обработчики сигналов, что были у родителя до этого. (По умолчанию при вызове fork() все обработчики сигналов сбрасываются.)
Т.е. алгоритм - временно передать все полномочия ребенку, а когда тот завершится, продолжить работу.
Вопрос: существует ли какая-то готовая библиотека, поддерживающая похожую логику? Меня беспокоят больше всего баги, которых можно насажать десятками при "ручной" реализации.