우분투, 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


답변