[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:21914] Re: 起動時の/var/log/messages



としです。

> 尾形です。

こんにちわ。

> FAQには/var/log/messagesはsyslogdを介して記録されるとありますが、
> 起動時の/var/log/messagesはどの段階で記録されるのでしょうか。

基本的には、「syslogd が動き始めた時から」でしょうか。

> FAQのマルチユーザモード(ランレベル3)での起動によると
> /etc/rc.d/rc.Mやrc.inet2でsyslogd,klogdが起動するとあり、messagesの
> 記録内容よりかなり後と思われます。
> 
> dmesgと同様にmemory上に記録されたものがsyslogd,klogdの起動の
> ときmessagesに出力されるのでしょうか。messagesにはsyslogd 1.4-0:
> restart.から始まってdmesgのかなり始めの部分からトレースされて
> いるようですが。

dmesg とか、klogd が読み出すメッセージ(カーネル・ログ・メッセージ)の
仕組みを簡単に説明すると、↓な感じです。

(1) カーネル・ログ・メッセージは、リングバッファで構成され、カーネル
    内にバッファとして存在します。
(2) カーネル・ログ・メッセージは、dmesg でも読み出せますし、
    /proc/kmsg からも読み出せます。
(3) klogd は、起動すると、/proc/kmsg からカーネル・ログ・メッセージ
    を読みとり、それを syslog() を通じて、syslogd に送ります。
(4) syslogd は、受けとったメッセージを、/var/log/messages に書き込み
    ます。

カーネル・ログ・メッセージは、カーネル内にバッファとして存在しますの
で、もちろんバッファが溢れて捨てられる事はありますが、大抵はご指摘の
通り、かなり始めの部分から読み出せます。

なお、これは klogd よりも先に、syslogd が動いている事が前提です。も
し、klogd が、syslogd よりも先に動いていれば、記録されない可能性があ
ります。
#Plamo Linux では、syslogd 起動後、1秒後に klogd が動きます。

「カーネル・ログ・メッセージ」と、「syslog メッセージ」は、基本的に
は全く別のものです(技術的にも全く違う実装です)。

klogd は、言うなれば /proc/kmsg -> syslog へのリダイレクターですので、
カーネル・ログ・メッセージは記録できても、syslog にログを残す何らか
のデーモンが、syslogd よりも先に動く場合、そのデーモンのログは残らな
い可能性があります。

ではこれにて。

Follow-Ups
[plamo:21916] Re: 起動時の/var/log/messages, Takehiko Ogata
References
[plamo:21909] 起動時の/var/log/messages, Takehiko Ogata

[検索ページ] [メール一覧]
Plamo ML 公開システム