rc.local的日志文件在哪里?


52

我在rc.local中有一些命令。我知道他们失败了。如何获取通过执行rc.local生成的消息的日志文件?它在哪里?

我已经检查了/var/log/boot.log。我知道我的消息不存在,因为我已经知道失败的原因是什么。但是我仍然想从日志文件中确认。

注意,我不想再次运行脚本,可以,但是我不想。我宁愿分析启动过程中发生了什么。

谢谢你的帮助。

Ubuntu 12.04 Desktop(如果重要)

Answers:


59

除非命令已配置输出或日志记录,否则rc.local命令将不会在任何地方记录日志。

如果你想查看特定命令日志,尝试重定向输出和错误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 '18

2
@ abu-bua:在查看引入功能更改的编辑建议时,请小心!&>重定向是一种Bash主义,在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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.