초기화 스크립트 우선순위 변경

초기화 스크립트 우선순위 변경

저는 raspbian(데비안 기반)을 실행하고 있습니다. init가 실행하는 첫 번째 스크립트가 자동으로 작성되도록 init 서비스의 우선순위를 변경하고 싶습니다. 어떻게 해야 합니까?

런레벨 SI에는 세 가지 우선순위 01 스크립트(hostname.sh, fake-hwclock 및 mountkernfs.sh)가 있습니다. 우선 순위가 01인 런레벨 S에 스크립트를 넣으면 실행되는 첫 번째 스크립트가 아닙니다. (예를 들어 mountkernfs.sh의 경우)을 사용하여 이러한 모든 스크립트의 우선 순위를 02로 변경해 보았습니다.

sudo update-rc.d -f mountkernfs.sh remove
sudo update-rc.d mountkernfs.sh start 02 S

첫 번째 명령은 /etc/rcS.d에서 스크립트를 효과적으로 제거합니다. 두 번째 명령은 mountkernfs.sh를 우선순위 01로 다시 설정합니다.

어떤 아이디어가 있나요? 감사합니다!

답변1

/etc/init.d/의 init 스크립트는 LSB 헤더에 대한 일부 정보를 지정합니다. LSB 헤더는 기본적으로 스크립트 시작 부분에 있는 몇 줄에 불과합니다. 일부 스크립트의 "필수 시작" 필드를 사용하면 이 스크립트 전에 초기화해야 하는 서비스를 지정할 수 있습니다. insservLSB 헤더에 대한 초기화 스크립트를 자동으로 추가합니다.

따라서 이 문제를 해결하려면 다음을 수행하십시오.

  • LSB 헤더의 "제공" 필드를 사용하여 스크립트 이름을 "X"로 지정합니다.
  • LSB 헤더의 "Default-Start" 및 "Default-Stop" 필드를 사용하여 각각 스크립트를 시작하고 중지해야 하는 실행 수준을 추가합니다.
  • 우선 순위가 01인 스크립트(hostname.sh, fake-hwclock 및 mountkernfs.sh)의 LSB 헤더에 있는 "Required-Start" 필드에 "X"를 설정합니다.
  • sudo insserv name_of_your_script_file(오퍼 필드에 지정한 이름이 아님)을 사용하여 서비스를 추가합니다.

그러면 관련 스크립트의 필요한 모든 스크립트 우선순위가 종속성과 일치하도록 이동됩니다. 나는:

  • S01X.sh
  • S02mountkernfs.sh
  • S02 호스트 이름.sh
  • S02 가짜 시계시계
  • S03udev

원천:http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot

.

관련 정보