SIGHUP
SIGHUP bezeichnet ein Signal innerhalb elektronischer Datenverarbeitungsanlagen, die ein Unix (oder ähnliches) Betriebssystem haben. In der Regel zeigt das Signal die Beendigung einer Datenverbindung an. Historisch war das eine Verbindung zu einem Terminal über eine Telefonleitung. Daher kommt die Bezeichnung SIGHUP.
Bei virtuellen Verbindungen kann SIGHUP anzeigen, dass ein Prozess beendet ist.
Bei Programmen ohne Terminal zeigt SIGHUP an, dass die Konfiguration neu geladen werden soll. Danach werden oft Datenverbindungen neu aufgebaut.
Etymologie
SIG wird gewöhnlich als Vorsilbe für Signale verwendet. HUP ist ein Kürzel für den englischen Begriff hang up, zu Deutsch aufhängen oder auflegen. Bei historischen Telefonen wurde die Gesprächsverbindung beendet, wenn der Telefonhörer an einem Haken aufgehängt wurde oder der Telefonhörer auf die Gabel gelegt wurde. Diese Begrifflichkeit wurde beibehalten, als Fernschreiber über das Telefonnetz mit einem Rechner verbunden wurden. Historisch ist in den zum Betriebssystem gehörenden Handbüchern die Bedeutung von SIGHUP mit hang up angegeben.[1][2][3] Eine Übersetzung ins Deutsche ist (Daten-)Verbindung beendet.
In neueren Handbüchern wird SIGHUP ausführlicher erläutert: „Hangup detected on controlling terminal or death of controlling process“[4][5][6]
Die Worte controlling und kontrollieren sind falsche Freunde. Im Deutschen steht kontrollieren für „prüfen“ oder „überwachen“.[7] Im Englischen ist „Macht ausüben“, „steuern“ oder „regeln“ gemeint.[8]
Eine Übersetzung von controlling terminal ist Steuerterminal. Das ist das Terminal, an dem durch Eingabe von Steuerzeichen (beispielsweise Strg-C) ein Prozess beeinflusst wird. Ist die Verbindung zum Steuerterminal beendet, wird SIGHUP gesendet. Der Text Hangup detected on controlling terminal bildet den Sachverhalt Verbindung beendet ab.
controlling process bezeichnet ein Steuerprogramm. Das kann der Prozessgruppenführer oder der Sitzungsführer sein. Gibt es ein Steuerterminal (controlling terminal) werden die genannten Prozesse vom Betriebssystem überwacht, death of controlling process (Steuerprogramm beendet) zeigt deren Ende an. Allerdings ist vorher das Steuerterminal abhandengekommen.[9] So bilden „Hangup detected on controlling terminal“ und „death of controlling process“ den gleichen Sachverhalt ab. Die zweite Formulierung ist zum Verständnis eines Terminalemulator hilfreich.
Eine weitere, übliche Funktion von Steuerprogrammen ist es, ein anderes Programm zum erneuten Auswerten seiner Konfiguration zu veranlassen. In diesem Zusammenhang zeigt SIGHUP kein death (Ende) an. Eine Übersetzung ist Anstoss vom Steuerprogramm.
Verwendung
Das Signal SIGHUP wird erzeugt, wenn auf einer Datenleitung zu einem Terminal, einem Drucker o. ä. ein Verbindungsabbruch entdeckt wird. Z. B. wenn bei einem Telefonmodem das Trägersignal nicht mehr wahrnehmbar ist.
Von einem Terminalemulator wird das Signal generiert, wenn das zum Terminal gehörende Fenster geschlossen wird.
Meist führt der Empfang des SIGHUP zum Beenden des Prozesses. Der Empfänger kann eine Signalbehandlung installieren. Dadurch können beim Abbruch Daten gesichert werden, das ist bei vielen Textverarbeitungsprogrammen der Fall. Ein typisches Beispiel ist ex.[10]
Bei Programmen ohne Terminal ist es üblich, dass beim Empfang des SIGHUP die Konfiguration noch einmal ausgewertet wird und das Programm danach weiterläuft.[11][12][13]
Das Signal SIGHUP wird meist vom Gerätetreiber verschickt. Es kann auch mit der C-Funktion kill
an einen Prozess, einen Thread oder eine Prozessgruppe geschickt werden. Dies wird z. B. durch die Befehlszeilenprogramme kill
oder killall
gemacht.
Die Terminalschnittstelle wird mit dem Programm stty
eingestellt. Dieses Programm hat u. a. die Optionen hup
und clocal
.
Siehe auch
Literatur
- W. Richard Stevens: Programmieren von UNIX-Netzen. Aus dem Englischen von Michael Fuese, Werner Maisch, Eberhard Trautwein. Carl Hanser Verlag, München / Wien 1992, ISBN 3-446-16318-2, Kapitel 2.4 Signale Seite 54. (Englische Originalausgabe von Prentince-Hall ISBN 0-13-928748-5)
- Brian W. Kernighan: Die UNIX Story. dpunkt Verlag GmbH, Heidelberg 2021, ISBN 978-3-86490-778-4, Seite 38
- Jürgen Gulbins: UNIX. Springer Verlag, Berlin / Heidelberg / New York, 3. Auflage 1988, ISBN 3-540-19248-4. (Seite 106 Kommandos, Programme, Prozesse, Seite 575 Systemanschlüsse und C-Bibliotheksfunktionen)
Einzelbelege
- ↑ HP-UX Reference Volume 3. Hewlett Packard, 1991, HP Part No. 81864-80000, Seite 667
- ↑ https://www.unix.com/man-page/hpux/5/signal/
- ↑ SunOS 5.10: /usr/share/man/man3head/signal.h.3head vom 16. Sept. 2006 00:46:56 UTC
https://software.cfht.hawaii.edu/man/solaris/signal(5)
https://docs.oracle.com/cd/E36784_01/html/E36873/signal.h-3head.html - ↑ Datei /usr/share/man/man7/signal.7.gz vom 2. Februar 2018 geliefert mit Ubuntu 18.04
- ↑ https://manpages.ubuntu.com/manpages/trusty/man7/signal.7.html
- ↑ https://www.man7.org/linux/man-pages/man7/signal.7.html
- ↑ https://de.wiktionary.org/wiki/kontrollieren
- ↑ https://dict.leo.org/englisch-deutsch/controlling
- ↑ Datei /usr/share/man/man2/setsid.2.gz vom 9. Februar 2020 20:49:27 UTC ausgeliefert mit Ubuntu 20.04 (Abschnitt Notes, dritter und vierter Absatz)
https://man7.org/linux/man-pages/man2/setsid.2.html (desgleichen) - ↑ ex-Spezifikation der Open Group. Abgerufen am 7. September 2016 (englisch).
- ↑ Bryan Costales with Eric Allman: sendmail. O'Reilly, Cambridge / Köln / Paris / Sebastopol / Tokyo, 1993 / 1997, ISBN 9-781565-92222-8. (Kapitel 26.3 Signaling the Daemon Seite 449)
- ↑ Dokumentation des Apache HTTP Server. Je nach Konfiguration des Webbrowsers wird die Seite in Deutsch, Englisch oder einer anderen Sprache angezeigt.
Ben Laurie, Peter Laurie: Apache. O’Reilly, Sebastopol u. a. 2002, ISBN 0-596-00203-3 (3. Ausgabe, Seite 43) - ↑ Dokumentation des Postfix (Mail Transfer Agent) (englisch)