В Linux, что происходит, когда программа (которая может иметь несколько потоков) получает сигнал, например SIGTERM или SIGHUP?
Какой поток перехватывает сигнал? Может ли несколько потоков получить один и тот же сигнал? Есть ли специальный поток, полностью посвященный обработке сигналов? Если нет, что происходит внутри потока, который должен обрабатывать сигнал? Как возобновление выполнения после завершения процедуры обработчика сигнала?