rc.localのログファイルはどこにありますか?


52

rc.localにはいくつかのコマンドがあります。私は彼らが失敗していることを知っています。rc.localを実行して生成されたメッセージを含むログファイルを取得するにはどうすればよいですか?それはどこにありますか?

/var/log/boot.logを確認しました。失敗の理由が何であるかをすでに知っているので、メッセージがそこにないことを知っています。しかし、私はまだログファイルから確認したいです。

注、スクリプトを再度実行したくないのですが、できませんが、したくないのです。起動時に発生したWHTを分析したいです。

助けてくれてありがとう。

Ubuntu 12.04デスクトップ(重要な場合)

回答:


59

コマンドに出力またはロギングがすでに設定されていない限り、コマンドはrc.localどこにも記録しません。

特定のコマンドのログを表示する場合は、stdoutとstderrrc.local確認可能な場所にリダイレクトしてみてください。これを/etc/rc.localファイルの先頭に追加してみてください:

exec 1>/tmp/rc.local.log 2>&1  # send stdout and stderr from rc.local to a log file
set -x                         # tell sh to display commands before execution

ただし、これにはrc.localファイルを再実行する必要があります。


3
exec &> /tmp/rc.local.log2つのexec呼び出しの代わりに十分です:-)
AjayKumarBasuthkar

2
@ abu-bua:機能変更を導入する編集提案を確認するときは注意してください!&>リダイレクションはBash-ismであり、Dashおよびに/bin/sh使用されるようなインタープリターの他の「プレーンな」実装では黙って失敗しますrc.local
デビッドフォースター

「先頭へ」は最初の行の前を意味し!/bin/sh -eますか?
ベン


10

systemdでは、rc.localはsystemdがログを収集するサービスと見なされます。あなたはそれらをレビューすることができます:

systemctl status rc.local.service

サービスログを使用して、エラー(存在する場合)を確認できます。


2

覗く

  1. /var/log/messages
  2. /var/log/daemon

または、dmesgコマンドを使用します

less /var/log/boot.log
less /var/log/dmesg
grep error /var/log/dmesg
grep <your expected error string> /var/log/boot.log

またはscript、他のツールを使用してログインをキャプチャしますrc.local

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.