I have some commands to in my rc.local. I know that they are failing. How can I get log file with messages produced by executing rc.local? Where is it located?

I have checked the /var/log/boot.log. I know my messages are not there because I know already what is the reason of failure. But I still want to make sure from log file.

Note, I don't want to run script again, I could but I don't want. I would rather analyse wht happened during startup.

Thanks for any help.

Ubuntu 12.04 Desktop (if it matters)


Unless a command has output or logging already configured, rc.local commands will not log anywhere.

If you want to see logs for specific commands, try redirecting the stdout and stderr for rc.local to somewhere you can check. Try adding this to the top of your /etc/rc.local file:

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

Though this will require to rerun the rc.local file.

| improve this answer | |
  • 3
    exec &> /tmp/rc.local.log is enough instead of the two exec calls :-) – AjayKumarBasuthkar Jul 3 '18 at 13:25
  • 2
    @abu-bua: Please be careful when you review edit suggestions that introduce functional changes! &> redirection is a Bash-ism and fails silently in Dash and other “plain” implementations of /bin/sh interpreters like the one used for rc.local. – David Foerster Sep 7 '18 at 7:48
  • does "to the top" mean before the first line !/bin/sh -e? – Ben Sep 3 '19 at 19:33

Try to check for failures in the /var/log/syslog file instead.

| improve this answer | |

With systemd rc.local is considered a service fo which systemd collects logs. You can review them with:

systemctl status rc.local.service

You can see errors (if they exist) through service log.

| improve this answer | |

Look in

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

Or use dmesg command

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

Or use script or some other tool to capture a log in rc.local

| improve this answer | |

To add to Sylvain's answer:

grep rc.local /var/log/syslog

Will show you all error output related to rc.local

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.