init.d 스크립트가 왜 등에 있습니까?

init.d 스크립트가 왜 등에 있습니까?

/etc나는 이것이 시스템 프로필을 위한 것이라는 것을 읽고 들었습니다 . 다양한 프로그램을 시작/중지/다시 시작하는 스크립트가 일반적으로 그렇지 /etc않거나 그와 유사한 이유에 대해 누군가 설명/직관을 줄 수 있습니까 ?/var/usr

답변1

/etc초기에는(역사적 및 부팅 중...) 디스크가 더 커질 때까지가 아니라 (첫 번째 마운트된 파일 시스템)의 일부였습니다 . 잡고 있다//usr/var일시적인데이터이며 이러한 스크립트는 임시가 아닙니다.

그렇게 간단하지는 않지만 그렇게 시작된 일이고 전체 디렉토리 레이아웃을 다시 디자인할 이유가 없습니다.

답변2

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

부팅 프로세스가 15~30년 전보다 훨씬 덜 맞춤화되고 대부분의 부팅 구성이 자동화되었음에도 불구하고 부팅 순서를 결정하는 모든 관리 선택 사항은 여전히 ​​존재합니다 /etc.

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

답변3

M. Dickey와 M. Pelletier는 모두 이 질문의 전제에 동의합니다. 그러나 전제가 잘못되었습니다.

"시스템 프로필에 적용"을 읽으면 /etc읽은 내용이 전체 그림을 제공하지 않습니다. 이름을보세요. "잠깐만요" 입니다. 사람들은 부엌 싱크대를 제외한 모든 것을 그곳에 보관하곤 했습니다.

  • /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.
  • daemontools 계열 사람들이 일부 서비스 관리 항목을 및 유사한 위치에 두는 것을 볼 수 /var/sv있습니다 /var/service. (예를 들어 내 nosh 도구 세트는 /var/sv./etc/service-bundles/usr/usr
  • 시스템화된 운영 체제 규칙은 에 무언가가 있고 /etc/systemd, 에 무언가가 있고 /run/systemd, 그리고 /usr/lib/systemd(해당되지 않는 사유로 기록되지 않은 경우에도) 에 뭔가가 있습니다 /usr/local/lib/systemd. 마찬가지로 대부분의 "서비스 시작/중지 관련 항목"은 아래 /usr가 아닌 아래에서 찾을 수 있습니다 /etc.

답변4

Digital UNIX는 현명하게 스크립트를 /sbin/init.d디렉토리에 배치합니다. 그리고 HP-UX,로제타스톤에 따르면.

관련 정보