Di mana file log dari rc.local?

52

Saya memiliki beberapa perintah di rc.local saya. Saya tahu mereka gagal. Bagaimana saya bisa mendapatkan file log dengan pesan yang dihasilkan dengan menjalankan rc.local? Di mana letaknya?

Saya telah memeriksa /var/log/boot.log. Saya tahu pesan saya tidak ada karena saya sudah tahu apa alasan kegagalan. Tapi saya masih ingin memastikan dari file log.

Catatan, saya tidak ingin menjalankan skrip lagi, saya bisa tetapi saya tidak mau. Saya lebih suka menganalisis apa yang terjadi selama startup.

Terima kasih atas bantuannya.

Ubuntu 12.04 Desktop (jika itu penting)

vladimir
sumber

Jawaban:

59

Kecuali sebuah perintah memiliki output atau logging yang sudah dikonfigurasikan, rc.localperintah tidak akan masuk ke mana pun.

Jika Anda ingin melihat log untuk perintah tertentu, coba mengarahkan stdout dan stderr untuk rc.localke tempat Anda dapat memeriksa. Coba tambahkan ini ke bagian atas /etc/rc.localfile Anda :

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

Meskipun ini akan perlu untuk menjalankan kembali rc.localfile tersebut.

Ross
sumber
3
exec &> /tmp/rc.local.logsudah cukup alih-alih dari dua panggilan exec :-)
AjayKumarBasuthkar
2
@ abu-bua: Harap berhati-hati saat Anda meninjau saran edit yang memperkenalkan perubahan fungsional! &>redirection adalah Bash-isme dan gagal diam-diam di Dash dan implementasi "biasa" dari /bin/shpenerjemah seperti yang digunakan untuk rc.local.
David Foerster
Apakah "ke atas" berarti sebelum baris pertama !/bin/sh -e?
Ben
12

/var/log/syslogSebagai gantinya, periksa kegagalan pada file.

Sylvain Pineau
sumber
10

Dengan systemd rc.local dianggap sebagai layanan yang systemd mengumpulkan log. Anda dapat memeriksanya dengan:

systemctl status rc.local.service

Anda dapat melihat kesalahan (jika ada) melalui log layanan.

Amir Ohadi
sumber
2

Lihat kedalam

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

Atau gunakan perintah dmesg

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

Atau gunakan scriptatau alat lain untuk mengambil logrc.local

Kirchberger
sumber