Где найти полную информацию о сигнале?

Где найти полную информацию о сигнале?

Я хочу знать полную информацию о SIGTTINсигнале, например, я хочу знать, SIGTTINможно ли обработать сигнал или нет.

Этотдокументацияговорит о сигнале только следующее SIGTTIN:

SIGTTIN 21,21,26 Остановить ввод терминала для фонового процесса

Ввод данных man SIGTTINв терминале ничего не дал.


Редактировать:

Я имел в виду не то, какие сигналы можно отправлять процессу, а то, может ли процесс, получающий сигнал, изменить действие сигнала по умолчанию. Например: действие по умолчанию для сигнала SIGTTIN— остановить процесс, вы можете изменить это действие по умолчанию в своей программе с помощью sigaction()функции. Некоторые сигналы не позволяют изменять свои действия по умолчанию, и это то, что я ищу (документацию о том, какие сигналы не позволяют изменять свои действия по умолчанию).

решение1

Вы можете использовать эту команду, которая обычно верна.

kill -l | egrep SIGTTIN

Вы также можете написать быстрый скрипт PERL для перехвата SIGTTIN +, а затем запустить его в фоновом режиме + вывести простое диагностическое сообщение, если запущен ваш обработчик SIGTTIN.

решение2

Я не думаю, что можно изменить действие сигнала по умолчанию, как и полностью игнорировать сигнал или установить обработчик сигнала.sigaction(2)говорит:

sa_handlerуказывает действие, которое должно быть связано с signum, и может быть SIG_DFLдействием по умолчанию, SIG_IGNдля игнорирования этого сигнала или указателем на функцию обработки сигнала. Эта функция получает номер сигнала в качестве своего единственного аргумента.

Если вы хотите изменить действие какого-либо сигнала на одно из других действий по умолчанию, вы можете вызвать другой сигнал, который выполняет то, что вам нужно (получить дамп ядра или остановить процесс), или просто выйти (завершить процесс).

SIGKILLи SIGSTOPэто два сигнала, которые вы не можете уловить или заблокировать. sigaction(2):

сигнумопределяет сигнал и может быть любым допустимым сигналом, кроме SIGKILLи SIGSTOP.

иsignal(7):

Сигналы SIGKILLневозможно SIGSTOPуловить, заблокировать или проигнорировать.

Однако игнорирование сигналов, поступающих от реальных неисправностей (неправильный доступ к памяти, неверные инструкции), может привести к тому, что процесс не будет находиться в очень стабильном состоянии.

Связанный контент