시작 스크립트 출력을 가상 터미널로 보내기

시작 스크립트 출력을 가상 터미널로 보내기

/etc/rc.d/rc3.d/S30initialize기본적으로 런레벨 3에 들어갈 때 호출되도록 하는 심볼릭 링크된 스크립트가 있습니다 .

이 스크립트의 출력이 가상 터미널에 나타나기를 원합니다. 예를 들어 화면의 기본 디스플레이에서. 그래서 이 스크립트에서 제가 하는 일은 모든 것을

(
  set -e
  set -x

  .... install some stuff, etc

) 2>&1 | tee -a /etc/init.log > /dev/tty1

그래서 이것은 잘 작동하지만, 출력 스트림이 화면에 잘 나타나도록 만들지만(부팅 커널 메시지 끝에서) 약 1초 후에 tty 로그인 프롬프트가 나타나서 "덮어씁니다".

스크립트 실행이 끝나면 종종 다음과 같이 로그인된 자신을 발견할 수 있습니다 /etc/init.log.

tee: write error

제 질문은 tty1tty 로그인 프롬프트를 일시적으로 또는 영구적으로 비활성화할 수 있는 방법이 있습니까? 입니다. 필요한 경우 Ctrl+Alt+F2를 사용하여 컴퓨터에 로그인할 수 있습니다.

또한 아래와 같이 파이프를 사용하지 않도록 변경하려고 시도했지만 ) 2>&1 | tee -a /etc/init.log /dev/tty1동일한 문제가 발생했습니다(더 이상 오류가 발생하지 않는 것 같습니다 tee: write error).

저는 Centos 7에서 이 동작을 조정하는 데 가장 관심이 있습니다.

그런데 Raspberry Pi에서 비슷한 작업을 시도할 때 부팅 시 약간 다른 실행 방법을 사용했습니다. 명령을 추가하면 모든 것이 rc.local문제 없이 기본 터미널 화면에 표시됩니다.

그래서 아마도 그것을 시도해 볼 수도 있고, 아니면 다른 방법이 있을 수도 있습니다. 아마도 내가 지시한 서브셸을 실행하기 전에 로그인 프롬프트가 나타날 때까지 기다릴 만큼 충분히 오래 멈출 수도 있을 것입니다 /dev/tty1. 이렇게 하면 로그인 프롬프트가 출력 스트림을 밟는 대신 내 스크립트가 출력 스트림을 밟게 됩니다.

관련 정보