rc0.d、rc1.d、... / etcのディレクトリ

rc0.d、rc1.d、... / etcのディレクトリ

/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およびを除くntpすべてのディレクトリにコピーをインストールしますか?rc0.drc6.d
  3. 上記のように複数回指定すると、実際に何回実行されますか?
  4. 上記から、起動中にどのコマンドがdovecot実行されるのかを知ることができますかntp
  5. ntp起動前にUbuntuに常に実行するように指示する正しい方法は何ですか?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.dK。再起動するには、すべて停止しなければならず、何も開始しないでください。

最初の文字の後の数字は、リンカスクリプトが実行される順序を示します。低い数字が高い数字の前に実行されます。したがって、特定の例ではS23ntp実行されます(この場合は実行)。今後 S24dovecot

答え2

  1. これらおよびareは、ほとんどの* NIXシステム(ベースのシステムを除く)runlevelで使用されるSystem Vスタイルのブートです。systemdカーネル/ユーザーが起動したら、runlevel何を実行するかを決定し、対応するrunlevel。これは、runlevel別のアセンブリから始めることができることを意味します。停止して再開するためのランレベルもありますが、始めに重点を置いているので今は無視します。
  2. 起動時に 1 つだけが実行されるため、一部のプログラムは同じ順序で、異なる順序で異なるか、同じパラメータを使用して異なるrunlevels で起動/停止する必要があります (すべてのオペレーティング システムですべてのランレベルが同じではありません)。runlevelしかし、Ubuntuはランレベル3-5を2からコピーしたので同じです。
  3. No.srunlevelは起動時または変更時に一度だけ実行されますrunlevel
  4. ntpスクリプトは、dovecotランレベル1ではなくランレベル2-5で最初に実行する必要があります。スクリプト名のシリアル番号()は実行順序を表します。したがって、それはすべて使用するランレベルによって異なります。S23ntp
  5. ディストリビューションによって異なりますが、Ubuntuの特別な場合は、ランレベル1と2にスクリプトを追加できます。

詳しくはウィキペディアUbuntuランレベルに関する記事

答え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)これが4番の項目です。

関連情報