ล็อกไฟล์จาก rc.local อยู่ที่ไหน


52

ฉันมีคำสั่งบางอย่างใน rc.local ของฉัน ฉันรู้ว่าพวกเขาล้มเหลว ฉันจะรับล็อกไฟล์พร้อมข้อความที่สร้างขึ้นโดยการรัน rc.local ได้อย่างไร มันตั้งอยู่ที่ไหน?

ฉันตรวจสอบ /var/log/boot.log แล้ว ฉันรู้ว่าข้อความของฉันไม่ได้อยู่ที่นั่นเพราะฉันรู้แล้วว่าอะไรคือสาเหตุของความล้มเหลว แต่ฉันยังต้องการตรวจสอบให้แน่ใจจากไฟล์บันทึก

หมายเหตุฉันไม่ต้องการเรียกใช้สคริปต์อีกฉันทำได้ แต่ไม่ต้องการ ฉันต้องการวิเคราะห์ว่าเกิดอะไรขึ้นในระหว่างการเริ่มต้น

ขอบคุณสำหรับความช่วยเหลือ

Ubuntu 12.04 Desktop (ถ้าเป็นเรื่อง)

คำตอบ:


59

หากคำสั่งมีเอาต์พุตหรือการบันทึกที่กำหนดค่าไว้แล้วrc.localคำสั่งจะไม่บันทึกที่ใดก็ได้

หากคุณต้องการดูบันทึกสำหรับคำสั่งเฉพาะลองเปลี่ยนเส้นทาง stdout และ stderrเพื่อrc.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.logก็เพียงพอแล้วแทนที่จะเรียกสอง exec :-)
AjayKumarBasuthkar

2
@ abu-bua: โปรดระวังเมื่อคุณตรวจทานคำแนะนำการแก้ไขที่แนะนำการเปลี่ยนแปลงการทำงาน! &>การเปลี่ยนเส้นทางเป็นทุบตีลัทธิและล้มเหลวเงียบ ๆ ใน Dash และอื่น ๆ “ธรรมดา” การใช้งานของล่ามอย่างหนึ่งที่ใช้สำหรับ/bin/sh rc.local
David Foerster

"ถึงด้านบน" หมายถึงก่อนบรรทัดแรก!/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.