rc 폴더에 부팅 시 시작되는 파일이 포함되어 있나요?

rc 폴더에 부팅 시 시작되는 파일이 포함되어 있나요?

에 파일을 만들고 /etc/rc0.d이름을 rc.local.

이 파일에는 내가 넣은 다른 파일을 실행하는 줄을 추가했습니다 Desktop. 부팅 시 명령이 실행될 수 있도록 이 모든 작업을 수행했습니다. 나는 팔로우했다이 문서의 지침(첫 번째 방법) 그러나 아무것도 작동하지 않는 것 같습니다.

왜 이것이 작동하지 않습니까?

답변1

/etc/rc.d/귀하가 링크한 지침에 언급된 것은 한때 모든 시작 스크립트 디렉토리를 함께 그룹화하는 데 사용되었던 대부분의 역사적인 디렉토리입니다. , /etc/rc.d/init.d/등 이 있었을 것입니다. 대부분의 현대 배포판은 오래 전부터 디렉토리를 생략 하고 다른 디렉토리를 ./etc/rc.d/rc0.d//etc/rc.d/rc1.drc.d/etc/

/etc/rc0.d//etc/init.d/에는 실행되어야 하는 스크립트에 대한 심볼릭 링크가 포함되어 있어야 합니다(스크립트의 실제 위치는 이어야 함 ).시스템 종료 또는 전원 끄기.

/etc/rc6.d/는 다음에서 실행되어야 하는 스크립트에 대한 링크입니다.재부팅(즉, 커널 업데이트를 설치한 후와 같이 즉시 다시 시작하려는 의도로 시스템을 종료하는 경우)

스크립트 링크에 ​​가장 적합한 디렉토리는 시스템 구성 및 시스템의 기본 런레벨(SysVinit를 사용하는 경우)에 따라 /etc/rc3.d/또는 입니다. /etc/rc5.d/Debian 기반 Linux 배포판은 일반적으로 일반 다중 사용자 상태(클래식 SysVinit 가정)에 런레벨 3을 사용하는 반면, RedHat/Fedora 기반 배포판은 GUI 로그인이 활성화된 다중 사용자 상태에 런레벨 5를 사용하고 다중 사용자 상태에 런레벨 3을 사용합니다. 로컬 X11 GUI 하위 시스템이 비활성화되었습니다.

모든 디렉토리의 심볼릭 링크 이름은 /etc/rc?.d/대문자 S 또는 대문자 K로 시작해야 하며, 그 뒤에는 시작 순서에서 스크립트의 상대적 위치를 식별하기 위해 (일반적으로) 두 자리 숫자가 와야 합니다. 해당 디렉토리의 링크입니다. 대문자 S를 사용하면 시스템이 명령줄 매개변수를 사용하여 연결된 스크립트를 실행하게 되고 start, K를 사용하면 매개변수가 stop대신 사용됩니다.

따라서 스크립트를 에 배치한 /etc/init.d/rc.local다음 다음과 같이 하나 또는 두 개의 심볼릭 링크를 만들어야 합니다.

ln -s /etc/init.d/rc.local /etc/rc3.d/S99rc.local
ln -s /etc/init.d/rc.local /etc/rc5.d/S99rc.local

하지만 그게 전부는 아닙니다!

NET 대신 클래식 SysVinit을 사용하는 최신 Linux 배포판은 systemd다양한 시스템 시작 작업을 하나씩 엄격하게 실행하는 대신 다양한 솔루션을 사용하여 병렬화하는 경향이 있습니다. 이는 최신 멀티 코어 CPU에서 병렬화를 통해 부팅 프로세스가 훨씬 빨라지기 때문입니다. 이 경우 스크립트 시작 부분에 특별히 형식이 지정된 주석 블록을 추가하여 스크립트가 의존하는 시스템 서비스를 정의해야 합니다. 그렇지 않으면 병렬화 논리가 스크립트를 실행할 수 있습니다.너무 빨리, 필요한 시스템 서비스가 먼저 시작되기 전에.

배포판에서 를 사용하는 경우 systemd이는 특히 중요합니다. 일부 배포판의 "공장 기본값"도 rc.local적절한 종속성 정의를 추가하지 않는 한 시작 프로세스 초기에 실행되기 때문입니다.

보다http://refspecs.linuxbase.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/initscrcomconv.htmlSysVinit 스타일 시작/종료 스크립트에 권장되는 주석 블록의 현재 사양은 다음과 같습니다.

간단히 말해서 스크립트 시작 부분에 다음과 같은 내용이 필요할 수 있습니다 rc.local.

### BEGIN INIT INFO
# Provides: rc.local
# Required-Start: $local_fs $network $remote_fs
# Required-Stop: $local_fs $network $remote_fs
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: run locally-configured start-up commands
### END INIT INFO

제 생각에는 Method-1이당신이 연결한 지침불완전하고 오래된 조언이 포함되어 있습니다. 다른 두 가지 방법은 새로운 사용자에게 더 쉬울 수 있지만 해당 방법이 특정 배포판에 적용 가능한지 여부를 결정하는 방법에 대한 지침은 포함하지 않습니다.

관련 정보