What are Linux signals and how do they work?



Пока процесс выполняется в Linux, ему можно послать сигнал. Это работает следующим образом: пока ядро ​​​​Linux занято предоставлением доли времени выполнения каждому процессу, если оно получает сигнал для определенного процесса, оно останавливает его выполнение и дает ему возможность обработать проблему. сигнал. Если у процесса нет специального обработчика сигнала, будет выполнено поведение по умолчанию: некоторые сигналы завершат процесс, другие приостановят или продолжат выполнение процесса, а третьи завершат его и сохранят память процесса в памяти в виде файла для дальнейшей отладки.



Вы, наверняка, уже встречались с SIGKILL. Этот сигнал, отправленный по умолчанию процессу командой kill, принудительно завершает процесс. Сигнал принимается ядром, и ядро ​​должно отправить его процессу, поэтому нам нужно указать идентификатор процесса kill: само по себе kill не указывает ядру завершить процесс, оно просто отправляет сигнал SIGKILL в процесс, который затем обработает его. Читать дальше.