syslog が飛ばない・・・解決
»
ある組み込みLinux製品で、syslog を飛ばそうと思って /etc/rsyslog.conf を次のような設定を加えてみました。
$WorkDirectory /var/spool $ActionQueueFileName fsmainqueue $ActionQueueMaxDiskSpace 2g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1 *.* @SYSLOGサーバのIP
しかし、logger コマンドを使っても、そもそもローカルの/var/log/message にすら何も記録されません・・・
しばらく悩み、/ をリードオンリーにしていたことを思い出しました。
syslog()は、/dev/log とUNIX domain socketにより通信を行ってログ出力を行っているので、
/ がリードオンリーだとソケットが作れずログが吐けないのです。
この製品は訳があって、 / をRAMDISK化していなかったので、/etc/default/rsyslog を RSYSLOGD_OPTIONS="-c2 -r -a /tmp/log" にして、
/dev/log は /tmp/log へのシンボリックリンクとして対応しました。
これを作った当時はsyslogなんて絶対に使わないだろうと思っていましたが、意外と困るものです。
SpecialPR