Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Understanding FIFO pipes and Syslog

by Plankton (Vicar)
on Oct 03, 2010 at 18:27 UTC ( #863196=perlquestion: print w/replies, xml ) Need Help??
Plankton has asked for the wisdom of the Perl Monks concerning the following question:

Dear Wise Monks,

I have been playing around with reading a FIFO that was created like so:

$ sudo mkfifo /var/log/blackhole.pipe
Then I modified my /etc/syslog.conf ...
$ cat /etc/syslog.conf ... # test logger script local1.* |/var/log/blackhole.pipe
... then restart syslogd. I can test like by executing ...
$ logger -p "test test" $ logger -p "test test" $ logger -p "test test" $ logger -p "test test2"
.. and ...
$ cat /var/log/blackhole.pipe Oct 3 11:16:09 localhost plankton: test test Oct 3 11:16:15 localhost last message repeated 2 times Oct 3 11:16:19 localhost plankton: test test2
... but when I run this scripts ...
$ cat #!/usr/bin/perl -w use strict; $|=1; my $fifo_file = "/var/log/blackhole.pipe"; my $fifo_fh; open($fifo_fh, "+< $fifo_file") or die "The FIFO file \"$fifo_file\" i +s missing, and this program can't run without it.:$!"; # just keep reading from the fifo and processing the events we read while (<$fifo_fh>) { chomp; print "read from pipe [$_]\n"; } # should never really come down here ... close $fifo_fh; exit(0);
... I get this output ...
$ sudo ./ read from pipe [Oct 3 11:22:45 localhost plankton: test test] read from pipe [Oct 3 11:22:52 localhost plankton: test test2]
... The strange thing is I do not always get the last message repeated 4 times output consistently. Is there something else besides $|=1 and using the +< on my open call ?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://863196]
Approved by biohisham
NodeReaper cleans and fillets

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2017-10-22 09:04 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (272 votes). Check out past polls.