Pygo: "tail -f" blockiert alle Prozesse dieser Gruppe

Beitrag lesen

Hallo,

Zu erst mal - ich bin ein ziemlicher Neueinsteiger und hoffe, ich habe nichts übersehen in den anderen Themen, falls doch, bitte einfach bescheid geben.

Ich versuche mit einem Perl-Script bestimmte Informationen aus einem server-log rauszuziehen und dementsprechend weiterzuverarbeiten. Dabei erstelle ich für verschiedene Server einen child-Prozess, der über die Pipe schon aussortierte Daten an den parent gibt. In den einzelnen Childs nutze ich open(LOG, "tail +0f $server/log/log_$server |"), um auf die log-Datei zuzugreifen (wie hoffentlich zu erkennen ist, soll das script vorerst nicht beendet werden und auch neue Einträge in der Datei sollen dann einfliessen). Wenn jetzt aber einer der Prozesse in die letzte noch existierende Zeile des log-files kommt und versucht, diese auszulesen, wartet er einfach so lange, bis in der nächsten Zeile auch etwas steht. Leider laufen in dieser Zeit weder der parent- noch irgendeiner der anderen child-Prozesse weiter.

Bisher habe ich zB versucht, das tail mit & in den Hintergrund zu schieben (geht vermutlich nicht, weil nicht direkt das tail sondern eher das <LOG> aufhält).

Hat irgendwer einen Tipp für mich oder einen Link, der mir weiterhilft?

Vielen Dank, Pygo