
/etc/rc0.d
私は、、、、...、/etc/rc1.d
というディレクトリがある Ubuntu を実行しています。/etc/rc2.d
/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
質問:
- 複数の「rc」ディレクトリの目的は何ですか?
- Ubuntu がとを除くすべてのディレクトリに
dovecot
との重複をインストールしたのはなぜですか?ntp
rc0.d
rc6.d
- 上記のように複数回指定した場合、実際には複数回実行されるのでしょうか?
- 上記から
dovecot
、ntp
起動時にどのような順序で実行されるかわかりますか? 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
シンボリックリンクの命名
名前が で始まるシンボリック リンクは、S
問題のランレベルで開始されますが、名前が で始まるシンボリックリンクは強制終了されます。再起動ランレベルK
内のすべてのリンクが で始まることに注意してください。これは、再起動時にすべてのリンクが停止され、何も開始されない必要があるためです。rc6.d
K
最初の文字の後の数字は、リンクされたスクリプトの実行順序を示します。数字が小さいスクリプトは、数字が大きいスクリプトよりも先に実行されます。したがって、特定の例では、がS23ntp
実行されます(この場合は開始されます)。前に S24dovecot
。
答え2
- これらは
runlevel
であり、ほとんどの *NIX システム ( ベースのシステムを除くsystemd
) で使用される System V スタイルの初期化です。 起動時にカーネル/ユーザーが何をrunlevel
実行するかを決定し、その のみを実行しますrunlevel
。 つまり、 に応じて、runlevel
異なるプログラム セットで起動できます。 halt と reboot のランレベルもありますが、ここでは起動部分に焦点を当てているため、今は無視しましょう。 runlevel
起動時に実行されるのは1 つだけなので、一部のプログラムはrunlevel
、異なるまたは同じパラメータで、同じまたは異なる順序で、異なる s で開始/停止する必要があります (すべてのランレベルがすべての OS で同じというわけではありません)。ただし、Ubuntu はランレベル 3 ~ 5 を 2 からコピーするため、同じになります。- 番号
runlevel
は起動時または を変更したときに 1 回だけ実行されますrunlevel
。 ntp
スクリプトは、ランレベル 1 の場合とは異なり、最初にdovecot
ランレベル 2 ~ 5 で実行する必要があります。スクリプト名の序数 ( ) は実行順序を示します。したがって、すべては使用しているランレベルによって異なります。S23ntp
- ディストリビューションによって異なりますが、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番目のポイントは方法です。