우분투, init 시작 제어 인기있는 옵션은 런레벨에서 서비스 시작

우분투는 sysvinit 대신 upstart를 사용합니다. 그러나 아직 런레벨과 링크가 있습니다.

나는 토르를 설치했고 그것은 OS의 시작에 스스로를 추가했다. 이제는 제거하고 인기있는 옵션은 런레벨에서 서비스 시작 및 중지 링크를 제거하거나 /etc/init.d/ 스크립트를 실행 불가능하게 만드는 것입니다. 이것은 괜찮지 만 시작 목록에 Tor를 다시 넣을 때 문제가 될 수 있습니다. 적절한 runlevel 디렉토리에 적절한 시퀀스를 넣는 방법을 어떻게 알 수 있습니까?

완전한 안내서가 있습니까? 이것에 대한 규칙은 무엇입니까? init을 관리하는 도구는 무엇입니까?

제발 말해줘



답변

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

    1. 로 시작하는 링크가있는 모든 서비스를 중지합니다. 케이 , 숫자로 정렬; 과
    2. 로 시작하는 링크가있는 모든 서비스를 시작합니다. 에스 , 숫자로 정렬.

    대신 Ubuntu의 복구 모드로 부팅 한 경우 런레벨로 부팅됩니다 1 . 모든 서비스가 시작되면 시스템 런레벨이 공식적으로 설정됩니다.

  • 마지막으로, 시스템은 /etc/rc.local 스크립트.

나중에 런레벨을 전환하면 SysVinit은 동일한 기본 프로세스를 실행합니다. /etc/rcS.d , 링크를 처리하는 데 곧바로 사용됩니다. /etc/rcN.d (여기서 N은 런레벨이 입력되는 곳).


Upstart 스크립트를 작성할 수도 있습니다. 나는 이전에 Upstart에 대해 작성되었습니다. , 그래서 거기에 더 자세한 내용을 확인하십시오. 시작 스크립트는 다음 위치에 보관됩니다. / etc / init ; 스크립트를 작성하고 기존 스크립트를 살펴보고 작동 방식에 대한 느낌을 얻고 init (5) 맨 페이지 .


답변

나는 단지 알고있다. update-rc.d 도구로. 그만큼 매뉴얼 페이지 그것을 사용하는 방법을 잘 설명하고 배우기가 너무 어렵지 않습니다.


Quack에게 감사의 말을 전했습니다. chkconfig. 그의 게시물을 확인하십시오. 이리 .


답변

여기에 update-rc.d 맨 페이지 . 기본적으로 rc.d 링크를 제거하면 업그레이드시 복원되므로 rc.d 링크가 제거되지 않습니다. 올바른 방법은 다음과 같습니다.

sudo update-rc.d tor disable

/etc/rc?.d에서 S (시작) 링크의 이름을 K (중지) 링크의 이름으로 바꿉니다. 이것은 또한 작동합니다 :

sudo rename 's:/S:/K:g' /etc/rc?.d/S*tor


답변