rc, rc.local 및 rc.sysinit의 차이점은 무엇입니까?

rc, rc.local 및 rc.sysinit의 차이점은 무엇입니까?

시작 시 현재 런레벨에 대한 시작 스크립트 목록을 표시하려고 합니다. 다음 코드를 작성했습니다.

rl=`runlevel | cut -d " " -f2`
ls /etc/rc.d/rc$rl.d/S* | cut -d "/" -f5
sleep 10

rc.local이 코드를 파일에 넣으면 작동합니다.

rc그런데 파일이나 별도의 스크립트 파일 abc에 넣어서 /etc/init.d런레벨 디렉터리에 소프트링크를 만들어 놓으면 동작하지 않습니다.

그러나 아래와 같은 간단한 명령은 모든 방법에서 작동합니다.

ls /etc/init.d

특정 스크립트가 시작되지 않으면 특정 명령(예: 실행 수준 또는 파이프)이 작동하지 않습니까? 아니면 다른 것이 있습니까?

코드를 파일에 넣으면 rc재부팅 전후에 코드가 실행됩니다.

  • rc그렇다면 파일 rc.local과 파일 rc.sysinit의 차이점은 무엇입니까 ?
  • 이 파일을 정확히 어디에서 편집해야 합니까?

2, 3, 4, 5 런레벨에서 S99local-> 소프트 링크 도 찾을 수 있습니다.rc.local

rc.local이것은 런레벨 1에서 실행될 수 없다는 것을 의미합니까 ?

답변1

  • rc Linux 배포판에서는 일반적으로 이를 사용하지 않지만BSD용
  • rc.local심볼릭 링크를 추가하지 않고 시작 중에 추가 명령을 실행할 수 있도록 사용됩니다.
  • rc.sysinit그런 것 같다빨간 모자구체적이고 프로세스 초기에 수행하십시오. 첫 번째 스크립트 중 하나로 실행되고 rc.local나중에 실행됩니다.

또한 런레벨 2, 3, 4 및 5에서 rc.local에 대한 S99local -> 소프트 링크를 찾을 수 있습니다. 이것은 rc.local이 런레벨 1에서 실행되지 않는다는 것을 의미합니까?

맞습니다. 이는 심볼릭 링크인 S99local이 /etc/rc.local런레벨에 들어갈 때 실행되는 마지막 스크립트 중 하나가 된다는 의미입니다. 런레벨처럼 실행되지 않습니다.234511단일 사용자일반적으로 구조/유지보수 작업에 사용되는 실행 수준입니다.

답변2

rc.sysinit이는 init 프로세스에 의해 실행되는 첫 번째 스크립트입니다. 이 스크립트는 시스템을 초기화하는 데 사용되며 다음을 포함합니다.

  • 커널 모듈 로드
  • 호스트 이름 설정
  • sysctl.conf에서 커널 매개변수 구성
  • 직렬 포트, RAID, LVM 초기화
  • 파일 시스템(/etc/fstab의 /proc, /sys 및 기타)을 확인하고 마운트합니다. 이는 /etc/fstab에 지정된 옵션을 사용하여 루트 파일 시스템을 다시 마운트하는 경우입니다(루트 파일 시스템은 init 프로세스가 시작되기 전에 /sysroot에서 커널에 의해 읽기 전용으로 마운트된다는 점을 기억하십시오).

실행 후 실행 수준 스크립트가 실행됩니다(기본 실행 수준이 3인 경우 rc.sysinit내부 스크립트가 실행됩니다)./etc/rc.d/rc3.d/

스크립트는 런레벨 스크립트가 실행된 후에 실행 /etc/rc.d/rc.local되며 전체 SysV 스크립트 내용(심볼릭 링크 생성 및 특정 형식으로 스크립트 이름 지정 포함)을 실행하지 않으려는 경우 추가 시작 콘텐츠를 파일 등

관련 정보