Ответ
Сигналы в Linux — это основной механизм для межпроцессного взаимодействия (IPC) и управления процессами. Каждый сигнал имеет свой номер и символьное имя. Вот ключевые из них:
-
SIGHUP (1)(Hang Up): Изначально использовался для оповещения о разрыве связи с терминалом. Сейчас часто используется для перезагрузки конфигурации демонов без их остановки. -
SIGINT (2)(Interrupt): Сигнал прерывания, обычно отправляется нажатиемCtrl+C. Процесс может его перехватить и корректно завершить работу. -
SIGKILL (9)(Kill): Безусловное, немедленное завершение процесса. Этот сигнал нельзя перехватить или проигнорировать, поэтому он является "последним средством". -
SIGTERM (15)(Terminate): Стандартный сигнал для запроса завершения процесса. В отличие отSIGKILL, он может быть перехвачен программой для выполнения очистки (сохранение данных, закрытие файлов). Это "вежливый" способ остановить процесс. -
SIGSTOP (19)(Stop): Приостанавливает выполнение процесса. Его, как иSIGKILL, нельзя перехватить. -
SIGCONT (18)(Continue): Возобновляет работу процесса, ранее остановленного сигналомSIGSTOP.
Пример использования команды kill:
# Найти PID процесса (например, my_app)
pid=$(pgrep my_app)
# Отправить сигнал на корректное завершение (по умолчанию SIGTERM)
kill $pid
# Если процесс не отвечает, отправить сигнал на безусловное завершение
kill -9 $pid
# или
kill -SIGKILL $pid