왜 init.d 스크립트가 포함되어 있습니까?


16

/etc시스템 구성 파일에 대한 읽기 / 듣기를 계속 합니다. 이러한 스크립트를 시작하는 이유는 누군가가 / 나에게 몇 가지 직관을주고 설명 할 수 / 정지 / 다시 시작 다양한 프로그램에 보통 /etc대신에 /var또는 /usr비슷한 나?


질문은 약간의 의견 지향적 일 수 있지만, 실제 사실로 질문에 대답 할 수 있다고 생각합니다.
— Julie Pelletier

역사적 이유에 대한 질문은 "의견 기반"입니까? 되돌아 보면 어떤 일이 일어난 이유가있을 수 있습니다. "그랜드 해커 씨가 그렇게했기 때문에"그저 그 질문에 대답 하는 사람의 의견에 달려 있지 않습니다 .
— ilkkachu

질문에 "왜 그렇게해야합니까?"라는 말을 제외하고는 의견 기반 "다채로운 토론"을 유발합니다. 조금 덜 편집했습니다. @Adam, 이것이 당신의 의도에 위배된다고 생각되면 되 돌리십시오.
— ilkkachu

1
서비스가 시작되는시기와 방법이 시스템 구성이기 때문입니다.
— OrangeDog

1
히스테리 건포도
— TMN

답변:


22

초기에 (역사적으로 그리고 부팅 과정에서), (첫 번째로 마운트 된 파일 시스템) /etc의 일부 /이지만 /usr디스크가 커질 때까지는 그렇지 않았습니다. 이 스크립트는 임시 데이터가 아닌 임시 데이터를 /var보유 합니다.

그렇게 간단하지는 않지만 그렇게 시작했고 전체 디렉토리 레이아웃을 재 작업 할 이유가 거의 없습니다.


1
당신이 말하는 것처럼, 그렇게 간단하지 않습니다. 다양한 상용 UNIX 시스템에는 /etc특정 시점에서 실제 바이너리 실행 파일이있었습니다 . 최소한 init.d현대 시스템의 스크립트는 대부분입니다. 그러나 여전히 /etc읽기 전용으로 마운트 할 수는 없습니다 .
— Satō Katsura

2
@SatoKatsura : 스크립팅 언어와 같은 느낌의 컴파일 된 언어의 출현으로 나는 / etc 스크립트 (초기 스크립트조차도)가 go 프로그램-바이너리 실행 파일로 대체되는 것을 눈치 채기 시작했습니다.
— slebetman

또한 최신 sysVinit 교체는 실제 스크립트가 아닌 간단한 구성 파일을 사용하므로 /etc구성이 아닌 항목으로 정리 될 수 있습니다.
— GnP

/tmp임시 데이터를 보유합니다. /var변수 데이터 보유
— Neil McGuigan

14

시작 스크립트는 실제로 시스템 구성에서 중요한 부분입니다.

부팅 프로세스가 15-30 년 전보다 훨씬 덜 사용자 정의되어 있고 대부분의 시작 구성이 자동화되었지만 시작 순서를 결정하는 모든 관리 선택 사항은 여전히에 /etc있습니다.

이는 시스템 구성을 유지 관리하고 백업하는 매우 중앙 집중화 된 방법을 나타냅니다. 대부분의 시스템에서 백업 /etc하면 전체 시스템을 쉽게 다시 설치할 수 있습니다. 필요한 프로그램으로 전체 재설치를 수행하고 /etc백업을 복원하면 됩니다.


3

디키 (M. Dickey)와 펠레 티에 (M. Pelletier)는이 질문의 구내로 샀습니다. 그러나 전제는 잘못되었습니다.

" /etc시스템 구성 파일을위한 것"이라는 내용을 읽었다면 전체 그림을 그리지 않는 내용을 읽은 것입니다. 이름을 봐 "et cetera"입니다. 사람들은 부엌 싱크대에 모든 것을 한 번에 넣었습니다.

  • /etc/rc 예전에는 모든 시스템을 시작하기 위해 프로그램을 실행했습니다.
  • 첫 번째 사용자 프로세스의 프로그램 이미지 파일 /etc/init은 한 시점에 있었습니다 (예 : XENIX의 경우, 시작하기 훨씬 전에 아이디어였습니다).
  • /etc/profile, /etc/zprofile및 나머지는 모두 스크립트입니다.
  • OpenBSD /etc/netstart는 프로그램입니다. FreeBSD도 마찬가지입니다 /etc/ipfw.rules.
  • 그래서 너무 FreeBSD의의입니다 /etc/rc.suspend및 /etc/rc.resume; 실제로 /etc/rc.sendmail, /etc/rc.bsdextended및 /etc/rc.firewall.

마찬가지로, 경우 "시작 스크립트 / 정지 / 다양한 프로그램에 보통 다시 읽었습니다 /etc대신 /var또는 /usr유사하거나 뭔가"당신은 당신을 위해 전체 그림을 그릴하지 않는 다른 뭔가를 읽었습니다.

  • FreeBSD / PC-BSD 규약은 /usr/local/etc/rc.d/비 운영 체제 rc스크립트 용 디렉토리 를 갖는 것 입니다. rc모든 종류의 사물에 대한 스크립트는 아래에있는 것이 아니라 그곳에 산다 /etc.
  • 당신은 데몬 툴즈 - 가족에 일부 서비스 관리 물건을 넣어 사람들이 찾을 수 있습니다 /var/sv, /var/service및 이와 유사한 장소. (예를 들어, 나의 nosh 툴셋은에서 거의 천 개의 서비스 번들을 제공 /var/sv합니다. 필요한 서비스 번들 은 마운트되고 필요한 경우 마운트 및 점검하는 서비스를 포함하여 /etc/service-bundles이전에 필요한 60에서 70 사이 의 유일한 서비스 번들입니다 .)/usr/usr
  • 체계적인 운영 체제 규약에는 어떤 것들이 존재하고 /etc/systemd, 어떤 것이 들어 있고 /run/systemd, 어떤 것이 들어 /usr/lib/systemd있고, ( 적용 할 수없는 이유로 문서화되지 않았더라도 ) 어떤 것이 들어 /usr/local/lib/systemd있습니다. 다시 말하지만, "서비스를 시작 / 중지하기위한 것"의 대부분은 아래가 /usr아니라 아래에 /etc있습니다.

2

Filesystem Hierarchy Standard 를 검토하는 것이 좋습니다. 정확한 이유를 설명하지만 궁금한 다른 경로에 대한 정보도 포함되어 있습니다.

파일 시스템 표준은 Unix 배포 개발자, 패키지 개발자 및 시스템 구현자가 사용하도록 설계되었습니다. 그러나 이것은 주로 참조 용이며 Unix 파일 시스템 또는 디렉토리 계층을 관리하는 방법에 대한 자습서가 아닙니다.


역사적 배경은 설명하지 않습니다.
— Thorbjørn Ravn Andersen

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.