A. Willemer Wie werde ich UNIX-Guru
| | I ANWENDUNG |
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.
|
II ADMINISTRATION |
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel
|
III NETZWERK |
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls
|
IV DAS X-WINDOW SYSTEM |
Die grafische Oberfläche von UNIX einrichten und nutzen
|
V PROGRAMMIERUNG VON SHELLSKRIPTEN |
Automatisieren von Tasks durch Shell-Skripte.
|
VI PERL |
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk
|
VII PROGRAMMIERWERKZEUGE |
C-Compiler, Analyse-Tools, CVS, yacc, diff
|
VIII UNIX-SYSTEMAUFRUFE |
UNIX-Befehle in eigenen Programmen nutzen
|
IX LITERATUR |
Weiterführende Literatur zu UNIX und LINUX
|
| |
Ein Prozess kann von außen mittels kill-Befehl Signale empfangen.
Normalerweise endet der Prozess, wenn er ein solches Signal bekommt.
Man kann Programme auch so schreiben, dass sie durch einen Signalbehandler
auf die Signale reagieren.
Der Funktion signal() meldet dem Betriebssystem, dass eine Funktion
des Programmes bestimmte Signale bearbeiten will.
#include <signal.h>
signal(int signalnr, void (*signalfunktion)(int));
Ein Signal, auf das ein Programm immer reagieren sollte ist SIGTERM. Er
wird z. B. beim Herunterfahren des Systems an jeden Prozess gesandt. Die
typische Reaktion sollte es sein, die Aktivitäten schnellstmöglich
einzustellen und einen konsistenten Zustand der Daten zu gewährleisten.
Dafür hat der Prozess im Falle des Herunterfahrens höchstens 5 Sekunden Zeit.
Dann wird er durch einen SIGKILL endgültig zerlegt.
Besonders bei Hintergrundprozessen ist es inzwischen üblich, das SIGHUP"-Signal zu verwenden, um den Prozess dazu zu bewegen, Konfigurationsdateien neu zu lesen. So ist es möglich, Einstellungen zu ändern, ohne den Betrieb zu unterbrechen.
Tabelle benennt alle Signalkonstanten, die der erste Parameter annehmen kann.
[Signale]L|L
Name & Bedeutung
SIGHUP & (1) Hangup: Terminalabschaltung oder Konfiguration neu einlesen
SIGINT & Unterbrechung durch ctrl-C oder Delete
SIGQUIT & Unterbrechung durch ctrl-
SIGILL & Illegale Anweisung
SIGTRACE & Im Debugmodus
SIGIOT & I/O Trap
SIGKILL & (9) nicht abfangbarer Tötungsaufruf
SIGBUS & Busfehler
SIGSEGV & Segmentation Violation
SIGPIPE & Schreiben auf ein nicht zum Lesen geöffnete Pipe
SIGALRM & Aufgesetzter Alarm
SIGTERM & (15) Terminierung
SIGUSR1 & (16) Benuterdefiniertes Signal zur freien Verfügung
SIGUSR2 & (17) Benuterdefiniertes Signal zur freien Verfügung
SIGCLD & Tod eines Sohnprozesses
SIGPWR & (19) Spannungsproblem
Die eingeklammerten Zahlen sind die Nummern der Signale, soweit sie über die
Systeme hinweg einheitlich sind.
Das folgende Programm fängt das Signal SIGHUP und gibt bei jedem kill
eine Meldung auf dem Bildschirm aus.
[SIGHUP-Signal fangen]
#include <signal.h>
void SigHandler(int Nr)
{
puts("Signal gefangen");
}
main()
{
signal(SIGHUP, SigHandler);
for (;;) ;
}
| |
|
|
Ihre Meinung? |
|
|
|
|
| |
| |
Shopping |
|
Versandkostenfrei bestellen in Deutschland und Österreich Info
|
|
| |
| |
|