Сигналы Linux

В Linux существует более трёх десятков сигналов, которые генерирует система или приложения. Вот список наиболее часто используемых, которые наверняка пригодятся при разработке сценариев командной строки.

Код сигнала Название Описание 1 SIGHUP Закрытие терминала 2 SIGINT Сигнал остановки процесса пользователем с терминала (CTRL + C) 3 SIGQUIT Сигнал остановки процесса пользователем с терминала (CTRL + ) с дампом памяти 9 SIGKILL Безусловное завершение процесса 15 SIGTERM Сигнал запроса завершения процесса 17 SIGSTOP Принудительная приостановка выполнения процесса, но не завершение его работы 18 SIGTSTP Приостановка процесса с терминала (CTRL + Z), но не завершение работы 19 SIGCONT Продолжение выполнения ранее остановленного процесса

Если оболочка bash получает сигнал SIGHUP когда вы закрываете терминал, она завершает работу. Перед выходом она отправляет сигнал SIGHUP всем запущенным в ней процессам, включая выполняющиеся скрипты.

Сигнал SIGINT приводит к временной остановке работы. Ядро Linux перестаёт выделять оболочке процессорное время. Когда это происходит, оболочка уведомляет процессы, отправляя им сигнал SIGINT.

Bash-скрипты не контролируют эти сигналы, но они могут распознавать их и выполнять некие команды для подготовки скрипта к последствиям, вызываемым сигналами.