Betrachter für wachsende Dateien V

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

logviewer.pl
sub close_pipe {
   my ($pipe, $pid) = @_;
   kill(15, $pid);
   $pipe->close;
}

*Da wir durch die spezielle Eröffnungstechnik der Pipeline im Besitz der Prozess-ID des tail-Prozesses sind, können wir ihn abschiessen (Signal SIGTERM), bevor wir die Pipeline schließen.
 
*Das Schließen einer Pipeline führt nicht nur zu einer close-Operation, sondern schließt auch ein waitpid ein, so daß kein herrenloser Prozeß zurückbleibt.
 
*Wenn kein kill erfolgen würde, dann käme es zu einem Hänger des elterlichen Prozesses, bis der tail-Prozess auf andere Weise beendet wird.
 
*Dies wäre normalerweise erst dann der Fall, wenn die Datei weiter wächst und die darauf erfolgende Schreiboperation von tail zu dem Eintreffen eines SIGPIPE-Signals führen würde, weil die Pipeline bereits geschlossen ist.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003