Junior — Middle
Explique o que são sinais no sistema operativo Linux e como trabalhar com eles
sobes.tech IA
Resposta da IA
No Linux, os sinais são um mecanismo de notificação assíncrona de processos sobre eventos (por exemplo, interrupção, término de um processo filho, timeout).
Pontos principais:
- Os sinais têm identificadores numéricos (por exemplo, SIGINT, SIGTERM).
- Um processo pode tratar um sinal com um manipulador de sinais ou ignorá-lo.
- Se o sinal não for tratado, a ação padrão é aplicada (por exemplo, terminar o processo).
Exemplo de tratamento do sinal SIGINT (Ctrl+C) em C:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Sinal %d recebido, encerrando...\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("A trabalhar...\n");
sleep(1);
}
return 0;
}
No shell, sinais podem ser enviados usando o comando kill com o PID, por exemplo, kill -SIGTERM 1234.