부팅 시 rc.local이 실행되지 않는 이유를 알아내기 위해 고심하고 있습니다.
파일 자체는 실행 가능하며 /etc/rc2.d에서 호출됩니다.
또한 명령줄에서 파일을 실행하면 오류가 반환되지 않습니다.
왜 실행되지 않는지 알아내기 위해 확인해야 할 다른 아이디어가 있습니까?
답변1
rc.local
수동으로 실행하면 제대로 실행된다고 말씀하셨기 때문에 즉시 떠오르는 두 가지 사항은 다음과 같습니다.
- 부팅 시 문제가 발생하지만 직접 실행하면 작동합니다. 아마도 부팅 시 PATH에 없는 프로그램을 실행하려고 할 것입니다.
/etc/rc.local
실제로 부팅시 실행되지 않습니다.
두 경우 모두 내가 가장 먼저 할 일은 다음과 같은 것을 넣는 것입니다.
/usr/bin/printenv > /var/tmp/rc.local-$(date +%T)
rc.local
줄 다음 의 첫 번째 줄로 #!/bin/sh
. 그러면 실행될 때마다 환경 변수가 타임스탬프 파일에 인쇄됩니다. ( /tmp
부팅 시 파일이 비워지기 때문에 파일을 쓰지 마십시오 .) /etc/rc.local
수동으로 실행하고 결과 파일을 빠르게 살펴보십시오(예: 이름이 지정됨 /var/tmp/rc.local-21:14:35
). 그런 다음 시스템을 재부팅하십시오.
/var/tmp
비교할 수 있는 두 개의 파일이 (또는 어디에든) 있어야 합니다 . 첫 번째 파일만 있으면 /etc/rc.local
실제로 호출되지 않습니다. 파일이 2개 있으면 비교해 보세요. 나중에 하나는매우희소 환경 및 PATH. 스크립트를 살펴보고 rc.local
부팅 시 환경에 없는 일부 변수나 PATH의 일부 구성 요소에 따라 실행하려는 항목이 있는지 확인하세요. 무언가를 찾으면 필요한 초기화를 rc.local
.