Onde está o arquivo de log do rc.local?

52

Eu tenho alguns comandos no meu rc.local. Eu sei que eles estão falhando. Como posso obter um arquivo de log com mensagens produzidas executando rc.local? Onde ele está localizado?

Eu verifiquei o /var/log/boot.log. Sei que minhas mensagens não estão lá porque já sei qual é o motivo do fracasso. Mas ainda quero ter certeza do arquivo de log.

Observe que não quero executar o script novamente, poderia, mas não quero. Prefiro analisar o que aconteceu durante a inicialização.

Obrigado por qualquer ajuda.

Ubuntu 12.04 Desktop (se necessário)

Vladimir
fonte

Respostas:

59

A menos que um comando tenha saída ou log já configurado, os rc.localcomandos não serão registrados em nenhum lugar.

Se você quiser ver os logs de comandos específicos, tente redirecionar o stdout e o stderr para rc.localum local que possa ser verificado. Tente adicionar isso ao topo do seu /etc/rc.localarquivo:

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

Embora isso exija a reexecução do rc.localarquivo.

Ross
fonte
3
exec &> /tmp/rc.local.logé suficiente, em vez das duas chamadas exec :-)
AjayKumarBasuthkar
2
@ abu-bua: tenha cuidado ao revisar sugestões de edição que introduzam alterações funcionais! &>o redirecionamento é um Bash-ism e falha silenciosamente no Dash e em outras implementações "simples" de /bin/shintérpretes como o usado para rc.local.
David Foerster
"para o topo" significa antes da primeira linha !/bin/sh -e?
Ben
12

Tente verificar se há falhas no /var/log/syslogarquivo.

Sylvain Pineau
fonte
10

Com o systemd, o rc.local é considerado um serviço para o qual o systemd coleta logs. Você pode revisá-los com:

systemctl status rc.local.service

Você pode ver os erros (se existirem) no log de serviço.

Amir Ohadi
fonte
2

Olhar dentro

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

Ou use o comando dmesg

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

Ou use scriptou alguma outra ferramenta para capturar um logonrc.local

Kirchberger
fonte