SIGSEGV
может быть перехвачено (см. man 3 signal
или man 2 sigaction
), и программа может вызвать одну из функций семейства exec
для перезапуска.Аналогично для большинства сбоев во время выполнения (SIGFPE
, SIGILL
, SIGBUS
, SIGSYS
, ...).
Я бы немного подумал, прежде чем делать это.Это довольно необычная стратегия для Unix-программ, и вы можете удивить своих пользователей (не обязательно приятным способом).
В любом случае, обязательно , а не с автоматическим перезапуском на SIGTERM
, если есть какие-то ресурсы, которые вы хотите очистить перед смертью, иначе рассерженные пользователи будут использовать SIGKILL
оставлю беспорядок.