<div dir="ltr">Thanks for all of those alternatives.<br>Allow me to rephrase my question (any idea): Does anyone have any idea as to why I am getting the broken pipe?<br>The script I am using now is for the sake of simplifying things so I can pin point where troubles begin.<br>
We are not going to use such a script in production.<br>The original java program that was supposed to be the destination is much more complicated, although in a sense it still reads the log messages off of std in, just like the script. (it is the handling of the logs afterwards that is complex).<br>
I shall investigate into using one of the alternatives, however - I will still be happy to know what might have went wrong.<br><br>Thanks.<br><br><div class="gmail_quote">On Wed, Aug 20, 2008 at 12:55 AM,  <span dir="ltr">&lt;<a href="mailto:prmarino1@gmail.com">prmarino1@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">well the script on the surface sounds like a good simple idea, the simple way is not always the best or most relyable way. There are several better options open to you that should work better and shouldn&#39;t be too hard to impliment. The first is to write to a log file then use something like a &quot;tail -f&quot; in your script. Another option open to you is if you know how to write unix network program&#39;s in any languages &nbsp;(I use perl for this kind of thing my self) it wouldn&#39;t be difficult to write a simple application read from a socket, or even udp syslog on an alternitive port on the loopback address. Syslog is a relitivly simple protocal to write a listener for and there are several perl modules that can do most of the work for you.<br>

-----------------------<br>
Sent from my Treo(r) smartphone<br>
<div><div></div><div class="Wj3C7c"><br>
-----Original Message-----<br>
From: &quot;midnight codder&quot; &lt;<a href="mailto:midnight.codder@gmail.com">midnight.codder@gmail.com</a>&gt;<br>
Date: Tuesday, Aug 19, 2008 5:08 pm<br>
Subject: [syslog-ng] destination program is killed due to broken pipe<br>
To: syslog-ng@lists.balabit.huReply-To: Syslog-ng users&#39; and developers&#39; mailing list &lt;<a href="mailto:syslog-ng@lists.balabit.hu">syslog-ng@lists.balabit.hu</a>&gt;<br>
<br>
I am trying to redirect all log messages to a destination program (written in java).<br>
This did not do much so I redirected all messages to a single catch-all log file AND also to a bash shell script that runs an endless loop, reads a line and spit it out to a text file.<br>
&nbsp;The shell script is killed by syslog-ng after the 5th message. The catch-all file, however, keeps getting all of the messages (that&#39;s how I know who is killing who).<br>
<br>
Here is the config file for syslog-ng:<br>
<br>
options {<br>
 &nbsp; &nbsp; &nbsp; &nbsp;ts_format(iso);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;frac_digits(3);<br>
};<br>
<br>
template bds_template{<br>
 &nbsp; &nbsp; &nbsp; &nbsp;template(&#39;&lt;pri=$PRI&gt; &lt;date=$ISODATE&gt; &lt;host=$HOST&gt; &lt;msg=$MSG&gt;\n&#39;);<br>
template_escape(no);<br>
};<br>
<br>
source src{<br>
 &nbsp; &nbsp; &nbsp; &nbsp;internal();<br>
 &nbsp; &nbsp; &nbsp; &nbsp;unix_stream(&#39;/dev/log&#39;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;unix-dgram(&#39;/dev/log&#39;);<br>
 &nbsp; &nbsp; &nbsp; &nbsp;file(&#39;/proc/kmsg&#39; log_prefix(&#39;kernel:&#39;));<br>
 &nbsp; &nbsp; &nbsp; &nbsp;udp();<br>
 &nbsp; &nbsp; &nbsp; &nbsp;tcp();<br>
};<br>
<br>
<br>
destination test_adapter{<br>
program(&#39;bash /usr/local/bds/logger/syslogAdapterTest.sh&#39; template(bds_template));<br>
};<br>
<br>
log { source(src); destination(test_adapter); };<br>
<br>
destination catchAll{<br>
file(&#39;/var/log/syslog-ng-catch-all.log&#39;, template(bds_template));<br>
};<br>
<br>
log { source(src); destination(catchAll); };<br>
<br>
Here is the bash script:<br>
<br>
&nbsp;#!/bin/bash<br>
<br>
file=&#39;/root/syslogAdapterTest&#39;<br>
counter=1<br>
limit=3<br>
<br>
<br>
while true<br>
do<br>
&nbsp;read line<br>
echo &#39;$line&#39; &gt; $file.$counter<br>
((counter++))<br>
done<br>
<br>
and finally the content of the catch-all file, in blue are the log messages that the shell script still captures and spits to text files, in red are the messages are the messages the shell does not get:<br>
<br>
</div></div>&nbsp;&lt;priE&gt; &lt;date 08-08-19T15:13:56.191-05:00&gt; &lt;host=oracle-test&gt; &lt;msg=syslog-ng[27971]: Server license found, starting in server mode; customer=&#39;University of Illinois&#39;, serial=&#39;49544f30-573e-11dd-9892-0007e9195011&#39;, limit=&#39;25&#39;&gt;<br>

&lt;priF&gt; &lt;date 08-08-19T15:13:56.191-05:00&gt; &lt;host=oracle-test&gt; &lt;msg=syslog-ng[27971]: Starting destination program; cmdline=&#39;bash /usr/local/bds/logger/syslogAdapterTest.sh&#39;&gt;<br>
&lt;priE&gt; &lt;date 08-08-19T15:13:56.193-05:00&gt; &lt;host=oracle-test&gt; &lt;msg=syslog-ng[27971]: syslog-ng starting up; version=&#39;2.1.11a&#39;&gt;<br>
&lt;priF&gt; &lt;date 08-08-19T15:13:56.193-05:00&gt; &lt;host=oracle-test&gt; &lt;msg=syslog-ng[27971]: Initializing destination file writer; template=&#39;/var/log/syslog-ng-catch-all.log&#39;, filename=&#39;/var/log/syslog-ng-catch-all.log&#39;&gt;<br>

&lt;priE&gt; &lt;date 08-08-19T15:13:56.193-05:00&gt; &lt;host=oracle-test&gt; &lt;msg=syslog-ng[27971]: License validity expires in one week, logging service will terminate at that point; error=&#39;License outside the validity period (option=syslog-ng, not-before 08/07/21, not-after 08/08/21)&#39;&gt;<br>

&lt;priC&gt; &lt;date 08-08-19T15:13:56.198-05:00&gt; &lt;host=oracle-test&gt; &lt;msg=syslog-ng[27971]: I/O error occurred while writing; fd=&#39;11&#39;, error=&#39;Broken pipe (32)&#39;&gt;<br>
&lt;priF&gt; &lt;date 08-08-19T15:13:56.198-05:00&gt; &lt;host=oracle-test&gt; &lt;msg=syslog-ng[27971]: Sending child a TERM signal; child_pid=&#39;27972&#39;&gt;<br>
<br>
Any idea?<br>
<br>
<br>
______________________________________________________________________________<br>
Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
FAQ: <a href="http://www.campin.net/syslog-ng/faq.html" target="_blank">http://www.campin.net/syslog-ng/faq.html</a><br>
<br>
</blockquote></div><br></div>