it-mure.jp.net

'S'で始まるスクリプトが/etc/rc.d/rc{0,6} .dに存在するのはなぜですか?

'S'で始まるスクリプトが/etc/rc.d/rc{0,6}.dに存在するのはなぜですか? 「S」を「K」に変更しても問題はありませんか?

システムが停止/再起動したときのシステムの動作は変更されていますか?

7
Qian

はい、従来のシステムV initスタイル(つまり)は、SまたはKで始まるシンボリックリンクを作成します。Sで始まるシンボリックリンクは「開始」を意味し、そのランレベルに入ると「開始」パラメーターで実行されます。 Kが付いているものは「kill」を意味し、それらのサービスは、そのランレベルが入力されたときに「stop」パラメーターで実行されます。これにより、実行レベルが異なれば、実行されるサービスのセットも異なります。 SからKに切り替えると、サーバーは起動せず、停止します。それが重要なサービスであったかどうかによって、それが問題になる場合とそうでない場合があります。

ところで、この方法は、新しいLinuxディストリビューションの新しい依存関係ベースのスタートアップシステムによって廃止されています。

12
Keith

別のWebサイトでこれに対して私が見つけた最良の答えは、実行レベル0と6ではKとSが無視されることです。これは、システムが停止コマンドを使用してこれらのスクリプトをすべて英数字順に実行するだけだからです...だからSまたはKは関係ありません。

次のような例があるUbuntuのデフォルトインストールでこれを証明できます。

K20restsrvK20zfs-マウントK20zfs-共有

S31umountnfs.sh S40umountfs S60umountroot S90halt

Kの例では、これらのスクリプト内に停止コマンドがあります。スクリプトは、開始コマンドと停止コマンドが実行されるときのデフォルトの実行レベルも指定します。これは、実行レベル2、3、4、5でデフォルトの開始、0、1、6でデフォルトの停止を示します。

0
Samsonite801