Linux 알아보기 : /etc/init.d 디렉토리

문제를 제거하기 위해 도구를 사용해보십시오

Linux를 사용한다면 아마 들어 보셨을 것입니다. init.d 예배 규칙서. 그러나이 디렉토리는 정확히 무엇을합니까? 궁극적으로 한 가지 작업을 수행하지만 전체 시스템에 대해 한 가지 작업을 수행하므로 init.d 매우 중요합니다. 그만큼 init.d 디렉토리에는 시스템의 다양한 서비스에 대한 여러 시작 / 중지 스크립트가 있습니다. 모든 것 acpidx11- 커먼 이 디렉토리에서 제어됩니다. 물론 그렇게 간단하지는 않습니다.

당신이 보면 /기타 디렉토리 형식으로 된 디렉토리를 찾을 수 있습니다. rc # .d (여기서 #이 숫자 인 경우 0에서 6까지의 특정 초기화 수준을 반영합니다.) 이러한 각 디렉토리에는 프로세스를 제어하는 ​​여러 다른 스크립트가 있습니다. 이 스크립트는 'K'또는 'S'로 시작합니다. 모든 'K'스크립트는 'S'스크립트보다 먼저 실행됩니다. 그리고 스크립트가있는 위치에 따라 스크립트가 시작되는시기가 결정됩니다. 디렉토리 사이에서 시스템 서비스는 기름칠이 잘 된 기계처럼 함께 작동합니다. 그러나 kill 또는 killall 명령을 사용하지 않고 프로세스를 깨끗하게 시작하거나 중지해야하는 경우가 있습니다. 그것이 /etc/init.d 디렉토리가 편리합니다.

이제 Fedora와 같은 배포판을 사용하는 경우이 디렉토리를 /etc/rc.d/init.d . 위치에 관계없이 동일한 용도로 사용됩니다.

의 스크립트를 제어하려면 init.d 수동으로 루트 (또는 sudo) 액세스 권한이 있어야합니다. 각 스크립트는 명령으로 실행되며 명령 구조는 다음과 같습니다.

/etc/init.d/command 옵션

어디 명령 실행할 실제 명령이며 선택권 다음 중 하나 일 수 있습니다.

  • 스타트
  • 중지
  • 재 장전
  • 재시작
  • 강제 재 장전

대부분 다음 중 하나를 사용합니다. 시작 멈춤, 또는 재시작. 따라서 네트워크를 중지하려면 다음 명령을 실행할 수 있습니다.

/etc/init.d/networking 중지

또는 네트워크를 변경하고 다시 시작해야하는 경우 다음 명령을 사용하여 수행 할 수 있습니다.

/etc/init.d/networking restart

이 디렉토리에있는보다 일반적인 초기화 스크립트는 다음과 같습니다.

  • 네트워킹
  • 삼바
  • apache2
  • ftpd
  • sshd
  • 비둘기장
  • mysql

물론 디렉토리에 더 자주 사용되는 스크립트가있을 수 있습니다. 설치 한 내용에 따라 다릅니다. 위의 목록은 Ubuntu Server 8.10 설치에서 가져온 것이므로 표준 데스크톱 설치에는 네트워킹 유형 스크립트가 몇 개 적습니다.

하지만 /etc/rc.local은 어떻습니까?

제가 꽤 많이 사용했던 세 번째 옵션이 있습니다. 이 옵션은 /etc/rc.local 스크립트. 이 파일은 다른 모든 init 레벨 스크립트가 실행 된 후에 실행되므로 시작시 발행하려는 다양한 명령을 입력하는 것이 안전합니다. 이 스크립트에 nfs와 같은 것에 대한 마운트 지침을 여러 번 배치 할 것입니다. 이것은 또한 '문제 해결'스크립트를 넣을 수있는 좋은 장소입니다. 예를 들어, 어떤 이유로 삼바가 시작하고 싶지 않은 것처럼 보였던 시스템이 있으면, Samba 데몬이 부팅시 초기화되도록 설정되었는지 확인하기 위해 확인하는 것도 더 좋습니다. 그래서이 작업을 앞두고 모든 시간을 소비하는 대신 단순히 라인을 배치했습니다.

/etc/init.d/samba 시작

/etc/rc.local 스크립트와 Samba는 매력처럼 작동했습니다. 결국 나는 돌아와서이 문제를 해결할 것입니다.

마지막 생각들

Linux는 유연합니다. Linux는 매우 유연하여 하나의 문제를 해결할 수있는 방법이 거의, 불가피합니다. 시스템 서비스 시작은 그러한 문제 중 하나입니다. 의 도움으로 /etc/init.d 시스템 (뿐만 아니라 /etc/rc.local ) 서비스가 시작될 것이므로 안심할 수 있습니다.