起動中にstderrはどこに行きますか(SysVinit)?

起動中にstderrはどこに行きますか(SysVinit)?

私が設定して構築したカスタムLinuxカーネルで発生したいくつかの起動問題を診断しようとしています。私はklogdのいくつかのソースコードを調べてきましたが、デバッグが有効になっている場合(-dオプションを介して)stderrにいくつかのエラーメッセージを印刷する必要があります。端末では、stderrは通常stdoutと同じ場所にあることを知っています。ただし、この場合、画面/コンソールの設定に問題があるため、起動中に画面に何も印刷されません(カーネルの起動メッセージは印刷されますが)。到着する/var/log/kern.log)。

しかし、私が期待しているklogd stderrメッセージはそのログファイルに印刷されないようです。

だから私の質問は:SysVinitの起動シーケンス中にstderrに印刷されたコンテンツはどこにあるべきですか?これらすべてをファイルにリダイレクトできますか?それでは、initスクリプトでこれを行う最善の方法は何ですか?

よろしくお願いします!

編集する:/etc/syslog.confの内容:

# Begin /etc/syslog.conf

auth,authpriv.* -/var/log/auth.log
*.*;auth,authpriv.none -/var/log/sys.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
*.emerg *

# End /etc/syslog.conf

ベストアンサー1

第1条によるとこの問題そしてこの回答、デフォルトでは、ブートプロセス stderr と stdout は、syslog に明示的にリダイレクトされない限り、どこからでもキャプチャされません。ただし、次のようなものを使用できます。ブートログsysvinit によって開始されるデーモンは、これらのメッセージをキャプチャするために使用されます。

あなたの場合、これらのサービスはklogdの前に開始する必要があり、展開に応じてLSBでヘッダーを初期化することによって実行できます。

おすすめ記事