Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
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

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Leichtgewichtsprozesse: Threads UNIX-Systemaufrufe Signale senden: kill »

Signale

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 (;;) ;
}



Unterabschnitte
  • Signale senden: kill
  • Auf Signale warten: pause
  • Timeout setzen: alarm
  • Zombies vereiteln


« Leichtgewichtsprozesse: Threads | UNIX-Systemaufrufe | Signale senden: kill »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de