/etc의 rc0.d,rc1.d,... 디렉토리

/etc의 rc0.d,rc1.d,... 디렉토리

/etc/rc0.d저는 , /etc/rc1.d, /etc/rc2.d, ..., 디렉토리가 있는 Ubuntu를 실행하고 있습니다 /etc/rc6.d.

내 컴퓨터의 예제 파일:

directory      example symlinks in the dir
------------------------------------------
/etc/rc1.d:    K76dovecot, K77ntp
/etc/rc2.d:    S23ntp, S24dovecot
/etc/rc3.d:    S23ntp, S24dovecot
/etc/rc4.d:    S23ntp, S24dovecot
/etc/rc5.d:    S23ntp, S24dovecot

질문:

  1. 여러 "rc" 디렉토리의 목적은 무엇입니까?
  2. Ubuntu가 및를 제외한 모든 디렉토리에 dovecot및 의 중복을 설치한 이유는 무엇입니까 ?ntprc0.drc6.d
  3. 위와 같이 여러번 지정하면 실제로는 여러번 실행되는 걸까요?
  4. 위에서 어떤 순서로 시작 시 실행되는지 알 수 dovecot있습니까 ntp?
  5. Ubuntu가 시작하기 ntp전에 항상 실행되도록 지시하는 적절한 방법은 무엇입니까 ?dovecot

답변1

다른 사람들이 지적했듯이 대답은 다음과 같습니다.런레벨이는 기본적으로 운영 체제의 작동 모드입니다. Linux에서는 일반적으로 다음과 같습니다.

ID  Name                               Description
0   Halt                               Shuts down the system.
1   Single-user Mode                   Mode for administrative tasks.
2   Multi-user Mode                    Does not configure network interfaces and 
                                       does not export networks services.
3   Multi-user Mode with Networking    Starts the system normally.
4   Not used/User-definable            For special purposes.
5   Start the system normally with 
    with GUI                           As runlevel 3 + display manager.
6   Reboot                             Reboots the system.

따라서 각 rcN디렉토리에는 해당 실행 수준에서 실행되어야 하는 스크립트에 대한 심볼릭 링크가 포함되어 있습니다. 실제 스크립트는 모두 일반적으로 다음 /etc/init.d디렉터리에 있습니다.

$ ls -l /etc/rc5.d/S22cron
lrwxrwxrwx 1 root root 14 Jan 14  2013 /etc/rc5.d/S22cron -> ../init.d/cron

심볼릭 링크 이름 지정

이름이 an으로 시작하는 심볼릭 링크는 S해당 런레벨에서 시작되고, 이름이 an으로 시작하는 심볼릭 링크 K는 종료됩니다. rc6.d재부팅 런레벨 의 모든 링크는 로 시작됩니다 K. 재부팅을 위해 모두 중지해야 하고 아무것도 시작하면 안 되기 때문입니다.

첫 문자 뒤의 숫자는 연결된 스크립트의 실행 순서를 나타냅니다. 숫자가 작은 항목이 숫자가 높은 항목보다 먼저 실행됩니다. 따라서 특정 예에서는 S23ntp실행됩니다(이 경우 시작됨).~ 전에 S24dovecot.

답변2

  1. 이는 runlevels이며 대부분의 *NIX 시스템에서 사용되는 System V 스타일 시작입니다(주요 기반 시스템 제외 systemd). 부팅할 때 커널/사용자는 무엇을 runlevel실행해야 할지 결정하고 해당 runlevel. 즉 runlevel, 다른 프로그램 세트로 부팅할 수 있다는 의미입니다 . 정지 및 재부팅을 위한 런레벨도 있지만 시작 부분에 초점을 맞추고 있으므로 지금은 무시하겠습니다.
  2. 부팅 시 하나만 실행되므로 일부 프로그램은 동일하거나 다른 순서로 다르거나 동일한 매개변수를 사용하여 runlevel다른 s에서 시작/중지해야 합니다 (모든 런레벨이 모든 OS에서 동일하지는 않습니다). runlevel그러나 Ubuntu는 런레벨 3-5를 2에서 복사하므로 동일합니다.
  3. 아니요. runlevel시작 시 또는 변경할 때 한 번만 실행됩니다 runlevel.
  4. ntp스크립트는 런레벨 1의 경우가 아니라 런레벨 2-5에서 먼저 실행되어야 합니다 dovecot. 스크립트 이름의 서수( )는 실행 순서를 나타냅니다. 따라서 이는 모두 사용 중인 런레벨에 따라 다릅니다.S23ntp
  5. Distro에 따라 다르지만 Ubuntu의 특별한 경우에는 스크립트를 런레벨 1과 2에 추가할 수 있습니다.

자세한 내용은위키피디아우분투 런레벨에 관한 기사

답변3

1) 여러 rcX.d 디렉토리는 'X' 런레벨 동안 시작하거나 중지할 서비스를 지정합니다.

2) rc0.d는 종료되는 런레벨 0용입니다. rc6.d는 재부팅용입니다. 나머지는 모두 다른 실행 수준(2 - 5)을 위한 것입니다. S는 시작을 의미하고 K는 종료를 의미합니다. 이는 본질적으로 /etc/rc.d의 원본 스크립트에 대한 링크입니다. S/K 뒤의 숫자는 서비스가 시작/종료되는 우선순위입니다.

3) 예, 여러 번 지정하면 시작/종료 스크립트가 여러 번 실행됩니다. 그러나 아무도 그렇게 하고 싶어하지 않습니다.

4) 우선 순위 번호를 보면 ntp 서비스가 먼저 시작되고 그 다음 dovecot 서비스가 시작됩니다.

5) 네 번째 요점이 길입니다.

관련 정보