SysVinit은 이와 같이 작동합니다. 각 패키지의 초기화 스크립트는 다음 위치에 있습니다. /etc/init.d . 해당 스크립트에 대한 링크는 /etc/rcS.d 과 /etc/rc[0-6].d . 이 링크는 에스 (시작) 또는 케이 (죽이기)와 2 자리 숫자.
시스템이 부팅되고 SysVinit 프로세스가 시작되면 /etc/rcS.d 로 시작하는 스크립트를 실행합니다. 에스 , 숫자로 정렬. (필자는 스크립트에 "start"인수를 전달한다고 생각하지만 잘 모르겠습니다.)
모든 /etc/rcS.d 스크립트가 처리 된 후 시스템은 특정 런레벨로 이동하기 시작합니다. Ubuntu에서 기본 데스크탑으로 부팅하면 기본 런레벨은 다음과 같습니다. 2 . 그래서 SysVinit가 보입니다. /etc/rc2.d 과
- 로 시작하는 링크가있는 모든 서비스를 중지합니다. 케이 , 숫자로 정렬; 과
- 로 시작하는 링크가있는 모든 서비스를 시작합니다. 에스 , 숫자로 정렬.
대신 Ubuntu의 복구 모드로 부팅 한 경우 런레벨로 부팅됩니다 1 . 모든 서비스가 시작되면 시스템 런레벨이 공식적으로 설정됩니다.
마지막으로, 시스템은 /etc/rc.local 스크립트.
나중에 런레벨을 전환하면 SysVinit은 동일한 기본 프로세스를 실행합니다. /etc/rcS.d , 링크를 처리하는 데 곧바로 사용됩니다. /etc/rcN.d (여기서 N은 런레벨이 입력되는 곳).
Upstart 스크립트를 작성할 수도 있습니다. 나는 이전에 Upstart에 대해 작성되었습니다. , 그래서 거기에 더 자세한 내용을 확인하십시오. 시작 스크립트는 다음 위치에 보관됩니다. / etc / init ; 스크립트를 작성하고 기존 스크립트를 살펴보고 작동 방식에 대한 느낌을 얻고 init (5) 맨 페이지 .