Доброго времени суток всем. Вопрос может быть немного туповатым, но интересным. В самом начале программы выставляю обработчики сигналов: SIGSEGV, SIGABRT, SIGTERM. В обработчике исполняю execl самого себя, тем самым пытаюсь добиться в случае шухера перезагрузку программы. Когда процесс получает сигнал SIGSEGV(SIGTERM, SIGABRT), он добросовестно исполняет execl. Но в следующий раз, уже этот сигнал не получает. В чем может быть причина столь интересного поведения?
Покурил литературу по этому вопросу, соответственно покурил и гугл, но ответа пока не нашел. Мне кажется, что сигнал блокируется, но в POSIX указано, что исполняя exec соответственно сбрасываются обработчики на значения по дефолту (но, повторюсь, в самом начале программы выставляю обработчики). Пробовал форкаться - результат не изменился.