Junior — Middle
Leg uit wat signalen zijn in het Linux-besturingssysteem en hoe ermee te werken
sobes.tech AI
Antwoord van AI
In Linux, signalen zijn een mechanisme voor asynchrone notificatie van processen over gebeurtenissen (bijvoorbeeld onderbreking, beëindiging van een kindproces, timeout).
Belangrijke punten:
- Signalen hebben numerieke identificaties (bijvoorbeeld SIGINT, SIGTERM).
- Een proces kan een signaal afhandelen met een signaalhandler of negeren.
- Als het signaal niet wordt afgehandeld, wordt de standaardactie toegepast (bijvoorbeeld het proces beëindigen).
Voorbeeld van het afhandelen van het SIGINT-signaal (Ctrl+C) in C:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void handler(int signum) {
printf("Signaal %d ontvangen, afsluiten...\n", signum);
_exit(0);
}
int main() {
signal(SIGINT, handler);
while(1) {
printf("Aan het werk...\n");
sleep(1);
}
return 0;
}
In shell kunnen signalen worden verzonden met het commando kill met de PID, bijvoorbeeld kill -SIGTERM 1234.