Lösung mit mehreren Prozessen II

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

motdserver.pl
my $socket = new IO::Socket::INET (
   LocalPort => $port, Type => SOCK_STREAM,
   Listen => SOMAXCONN, Reuse => 1,
);
die "Unable to setup socket: $!\n" unless defined $socket;

$SIG{'CHLD'} = sub { wait() };

*An das assoziative Array %SIG können Signalbearbeiter zugewiesen werden.
 
*Das Signal CHLD trifft ein, wenn ein Kindprozeß stirbt. Solange für einen terminierten Kindprozeß wait(2) nicht aufgerufen wird, belegt es einen Platz in der Prozeßtabelle (als sogenannter Zombie).
 
*Mit dem eingetragenen Bearbeiter sub { wait() } wird dafür gesorgt, daß dieses Schicksal für die Kindprozesse vermieden wird.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000