$ sudo mkfifo /var/log/blackhole.pipe
####
$ cat /etc/syslog.conf
...
# test logger script
local1.* |/var/log/blackhole.pipe
####
$ logger -p local1.info "test test"
$ logger -p local1.info "test test"
$ logger -p local1.info "test test"
$ logger -p local1.info "test test2"
####
$ 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
####
$ cat process_blackhole.pl
#!/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\" is 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);
####
$ sudo ./process_blackhole.pl
read from pipe [Oct 3 11:22:45 localhost plankton: test test]
read from pipe [Oct 3 11:22:52 localhost plankton: test test2]