rc.local의 로그 파일은 어디에 있습니까?


52

내 rc.local에 몇 가지 명령이 있습니다. 나는 그들이 실패하고 있다는 것을 안다. rc.local을 실행하여 생성 된 메시지가있는 로그 파일을 어떻게 얻을 수 있습니까? 어디에 있습니까?

/var/log/boot.log를 확인했습니다. 나는 실패의 이유가 무엇인지 이미 알고 있기 때문에 내 메시지가 없다는 것을 알고 있습니다. 그러나 여전히 로그 파일에서 확인하고 싶습니다.

참고로 스크립트를 다시 실행하고 싶지 않지만 할 수는 없지만 원하지는 않습니다. 오히려 시작하는 동안 발생한 내용을 분석하고 싶습니다.

도움을 주셔서 감사합니다.

우분투 12.04 데스크탑 (필요한 경우)

답변:


59

명령에 출력 또는 로깅이 이미 구성되어 있지 않으면 명령이 rc.local어디에도 기록되지 않습니다.

특정 명령에 대한 로그를 보려면 stdout 및 stderrrc.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 : 기능적인 변경을 소개하는 편집 제안을 검토 할 때주의하십시오! &>리디렉션은 Bash-ism이며 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.