Назад к вопросам
МТС
Т-Банк
Junior — Middle
73
Объясните, что такое сигналы в операционной системе Linux и как с ними работать
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Linux сигналы — это механизм асинхронного уведомления процессов о событиях (например, прерывание, завершение дочернего процесса, таймаут).
Основные моменты:
- Сигналы имеют числовые идентификаторы (например, SIGINT, SIGTERM).
- Процесс может обработать сигнал с помощью обработчика (signal handler) или игнорировать его.
- Если сигнал не обработан, применяется действие по умолчанию (например, завершение процесса).
Пример обработки сигнала SIGINT (Ctrl+C) на C:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Получен сигнал %d, завершаем работу\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("Работаем...\n");
sleep(1);
}
return 0;
}
В shell можно отправлять сигналы командой kill по PID, например kill -SIGTERM 1234.