제목은 다음과 같습니다.
#!/bin/sh -e
#
# rc.local - executed at the end of each multiuser runlevel
#
# Make sure that the script will "exit 0" on success or any other
# value on error.
이 파일이 있는 이유는 무엇이며(내용이 많지 않음) 일반적으로 이 파일에 어떤 명령을 입력합니까? "다중 사용자 실행 수준"이란 무엇입니까? (내 생각엔 rc
"실행 명령"인 것 같은데?)
답변1
ㅏ런레벨시스템이 시작, 다시 시작, 종료 중인지, 단일 사용자 모드인지, 아니면 정상적으로 작동하는지를 나타내는 시스템 상태입니다. 전통적인내부에프로그램은 적절한 실행 수준으로 전환하여 이러한 작업을 처리합니다. Linux에서는 런레벨관례에 따르면:
- S가 시작되면,
- 0 종료할 때,
- 6 다시 시작하면
- 1 단일 사용자 모드 및
- 정상 작동 시 2~5.
실행 수준 2~5는 시스템 관리자만 사용할 수 있는 실행 수준 1과 달리 여러 사용자가 로그인할 수 있으므로 다중 사용자 실행 수준이라고 합니다.
실행 수준이 변경되면 init가 실행됩니다.RC 스크립트(기존 init를 사용하는 시스템에는 다른 옵션도 있습니다.갑자기 나타나다그리고체계). 이러한 rc 스크립트는 일반적으로 시스템 서비스를 시작 및 중지하며 배포판에서 제공됩니다.
이 스크립트는 /etc/rc.local
시스템 관리자가 사용하도록 만들어졌습니다. 전통적으로 이는 모든 정상적인 시스템 서비스가 시작된 후 다중 사용자 실행 수준으로 전환하는 프로세스의 마지막에 수행됩니다. 이를 사용하여 에 설치된 것과 같은 사용자 정의 서비스를 시작할 수 있습니다 /usr/local
. 대부분의 설치에는 필요하지 않으며 /etc/rc.local
필요한 몇 가지 경우에 제공됩니다.
답변2
rc
"작동 제어"를 의미하며,
런레벨은 multiuser
네트워크에서 사용 가능한 레벨로 정의되므로 이러한 서비스는 유선 콘솔 연결 대신 서버에 대한 연결을 설정하는 데 사용될 수 있습니다.
서버는 일반적으로 네트워크 연결을 지원하고 마치 유선 콘솔이 있는 것처럼 작동하는 서비스 프로세서(다양한 이름으로)에 의해 관리됩니다.
파일 의 경우 rc.local
이는 편리하며 시작할 모든 "로컬"(사이트별) 개체(데몬 및/또는 시작 시간 스크립트)를 지정할 수 있습니다. 이 예제를 사용하도록 선택하거나 실제로 시작/중지 스크립트로 "/etc/init.d"를 적절하게 채울 수 있습니다.
답변3
이 rc.local
문서는더반주로 초기화되지 않은 스타일 시스템과의 호환성을 위해 사용됩니다. 당신은 그것을 사용해서는 안됩니다.
/etc/init.d/Skeleton
대신, 런레벨을 새 초기화 스크립트로 변경할 때 발생하려는 모든 것을 복사한 다음 inserv
이를 사용하여 활성화하는 것이 좋습니다 .
업데이트: 아래 의견에 따르면 이 답변은 더 이상 권장되지 않습니다. 그러나 이 답변은 이미 게시되었습니다.몇 년스켈레톤이 더 이상 사용되지 않기 전에는 해당 스켈레톤이아직도 존재한다2019년 1월 현재 데비안은 불안정합니다.
답변4
나는 주로 두 가지 용도로 사용합니다.
재부팅할 때마다 날짜와 커널 버전을 기록합니다. 패딩 없이 시스템에 쉽게 추가할 수 있고 실행하는 것보다 빠른 간단한 단일 라이너입니다
uptimed
.몇 년 전의 데비안에서 이전 /etc/rc.boot/ 디렉터리를 복원합니다. init.d 스크립트로 다시 작성할 가치가 없는 몇 가지 간단한 스크립트가 아직 남아 있습니다(예: 루트에 dmesg를 보내는 Q&D 스크립트, 유휴 스핀을 비활성화하기 위해 hdaparm을 사용하고 미리 읽기 크기를 설정하기 위해 blockdev를 사용하는 스크립트). 기쁘네요. 다른 모든 시작 스크립트 후에 실행됩니다.
예를 들어
echo "$(date +%s),$(date),$(uname -a)" >> /var/log/reboot.log
[ -d /etc/rc.boot ] && run-parts /etc/rc.boot
또한 올해 초 Centos 및 Debian 배포판용 /etc/rc.local 스크립트를 작성하여 http://169.254.169.254/
openstack(on)에서 ec2 스타일 메타데이터를 가져와 가상 머신이 IP, 호스트 이름, SSH 비밀번호 키 및 기타 인스턴스 관련 키를 얻을 수 있도록 했습니다. 정보. cloud-init가 이러한 배포판으로 포팅되었으므로 이제 스크립트는 더 이상 사용되지 않습니다.