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
[Bearbeiten | Quelltext bearbeiten]SIG ist eine Abkürzung für Signal. ALRM ist ein Kürzel für Alarm, hier mit der Bedeutung Weckruf.
Verwendung
[Bearbeiten | Quelltext bearbeiten]Soll ein Programm eine maximalen 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 Unterprogramms auf, siehe Signal (Unix)#Signal_ä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
[Bearbeiten | Quelltext bearbeiten]- https://www.man7.org/linux/man-pages/man2/alarm.2.html
- https://www.man7.org/linux/man-pages/man3/exec.3.html
- https://www.man7.org/linux/man-pages/man2/execve.2.html
- https://linux.die.net/man/2/setitimer