Junior — Middle
Expliquez ce que sont les signaux dans le système d'exploitation Linux et comment y travailler
sobes.tech IA
Réponse de l'IA
Sous Linux, les signaux sont un mécanisme de notification asynchrone des processus concernant des événements (par exemple, interruption, terminaison d’un processus enfant, timeout).
Points clés :
- Les signaux ont des identifiants numériques (par exemple, SIGINT, SIGTERM).
- Un processus peut gérer un signal avec un gestionnaire de signal ou l’ignorer.
- Si le signal n’est pas géré, l’action par défaut est appliquée (par exemple, terminer le processus).
Exemple de gestion du signal SIGINT (Ctrl+C) en C :
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Signal %d reçu, arrêt en cours\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("En cours...\n");
sleep(1);
}
return 0;
}
En shell, vous pouvez envoyer des signaux avec la commande kill en utilisant le PID, par exemple kill -SIGTERM 1234.