SIGALRM
SIGALRM ist ein Signal unter POSIX-kompatiblen Betriebssystemen. Es dient dazu, einen Prozess nach Ablauf einer Zeitspanne zu benachrichtigen; eine Analogie dazu ist eine Eieruhr, die aufgezogen wird und nach Zeitablauf klingelt.
Etymologie
SIG ist eine Abkürzung für Signal. ALRM ist ein Kürzel für Alarm, hier mit der Bedeutung Weckruf.
Verwendung
Soll ein Programm eine maximale Laufzeit einhalten, kann mit dem Systemaufruf alarm()
die Auslösung des SIGALRM eingerichtet werden. Nach dem Zeitablauf wird das Programm durch das Betriebssystem beendet.
Ein Programm kann ein Unterprogramm zur Bearbeitung des SIGALRM einrichten. Beim Eintreffen des Signals ruft das Betriebssystem dieses Unterprogramm auf, siehe Signal (Unix)#Aktion ändern.
Bei einigen Systemen ist dokumentiert, dass die Funktion sleep()
ebenfalls SIGALRM benutzt und Aufrufe von alarm()
und sleep()
nicht gemischt werden sollen.[1]
Die für einen Alarm laufende Uhr läuft u. U. weiter, falls das Programm mit den Systemaufruf execve()
durch ein anderes Programm ersetzt wird. Ein Unterprogramm zur Signalbehandlung ist dann nicht mehr vorhanden. Beim Eintreffen des SIGALRM wird das Programm beendet. Das neue Programm kann natürlich eine eigene Signalbearbeitung einrichten.
Quellen
- exec(3) – Linux manual page
- execve(2) – Linux manual page
- setitimer(2): get/set value of interval timer – Linux man page
Einzelnachweise
- ↑ alarm(2) – Linux manual page, abgerufen am 8. Januar 2025 (englisch)