시작하는 동안 stderr는 어디로 가나요(SysVinit)?

시작하는 동안 stderr는 어디로 가나요(SysVinit)?

제가 구성하고 구축한 사용자 정의 Linux 커널에서 발생한 일부 부팅 문제를 진단하려고 합니다. 나는 klogd에 대한 일부 소스 코드를 조사해 왔으며 디버깅이 활성화된 경우(-d 옵션을 통해) stderr에 일부 오류 메시지를 인쇄해야 합니다. 터미널에서 stderr은 일반적으로 stdout과 동일한 위치에 있다는 것을 알고 있습니다. 그러나 이 경우 화면/콘솔 구성에 문제가 있어서 부팅 중에 화면에 아무것도 인쇄되지 않습니다(커널 부팅 메시지는 인쇄되지만). 도착하다 /var/log/kern.log).

그러나 내가 기대하는 klogd stderr 메시지는 해당 로그 파일에 인쇄되지 않는 것 같습니다.

그래서 내 질문은: SysVinit 시작 시퀀스 중에 stderr에 인쇄된 콘텐츠는 어디에 있어야 합니까? 이 모든 것을 파일로 리디렉션할 수 있나요? 그렇다면 init 스크립트에서 이를 수행하는 가장 좋은 방법은 무엇입니까?

미리 감사드립니다!

편집하다:/etc/syslog.conf의 내용:

# Begin /etc/syslog.conf

auth,authpriv.* -/var/log/auth.log
*.*;auth,authpriv.none -/var/log/sys.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
*.emerg *

# End /etc/syslog.conf

답변1

제1조에 따르면이 문제그리고이 답변, 기본적으로 부팅 프로세스 stderr 및 stdout은 syslog로 명시적으로 리디렉션되지 않는 한 어디에서도 캡처되지 않습니다. 그러나 다음과 같은 것을 사용할 수 있습니다.부팅 로그sysvinit에 의해 시작되는 데몬은 이러한 메시지를 캡처하는 데 사용됩니다.

귀하의 경우 이러한 서비스는 klogd 이전에 시작되어야 하며 배포에 따라 LSB로 헤더를 초기화하여 수행할 수 있습니다.

관련 정보