syslog-ngでI/O error occurred while writingが出る原因と対策

syslog-ngでログ取得時にShellを実行しようとしたら「I/O error occurred while writing」というエラーが発生し、ちょっとハマったので備忘録として残しておきます。

参考サイト

環境

この記事は以下の環境で実践した結果をもとに作成されました。

version
syslog-ng-2.1.4-9.el5

やりたかったこと

  • xinetdが抱えている不具合「1 descriptors still set」のエラーを検知したい
  • そのために/var/log/messagesに出力された当該文字列を検知してメールを送信する

ちなみに、RedHat Bugzillaによると、xinetd-2.3.14-40.fc16でBugFixしてる模様です。多分。(英語がダメなので何となくです)

エラー発生時のxinetd.conf

エラー内容

修正後のxinetd.conf

flush_linesとflush_timeoutを0にすればOK