Linux で /etc/*.d/ を設定メカニズムとして使用するという概念がいつ導入されましたか? また、これは何と呼ばれていますか?

Linux で /etc/*.d/ を設定メカニズムとして使用するという概念がいつ導入されましたか? また、これは何と呼ばれていますか?

これは非常に基本的な質問ですが、Google で検索するのが難しい質問の 1 つです。configuration through は/etc/*.dすべての Linux カーネルでサポートされているわけではないようです。まず、パラダイムを適切に参照する方法を理解し.d、次に (おそらくこのサイトの範囲を超えていますが) その背後にある歴史と、さまざまな構成戦略が選択された理由を理解したいと思います。

ありがとう。

答え1

これは、どうやら非常によくある質問のようです。私が知る限り、あなたの質問は、単に意味を尋ねるのではなく、その利点や歴史について尋ねる Stack Exchange での最初の質問なので、ここで直接回答します。

つまり、.d単に「ディレクトリ」を意味します。私の知る限り、これは sysvinit の または/etc/init.d/フォルダーで実現されました/etc/rc.d。これらには常に、他のプロセスによって解析または呼び出される個別の構成ファイルが含まれています。

なぜこれが行われるのかについて、いくつかの理由があります。

  1. init プロセスが 1 つの構成ファイルで制御されているとしたらどうでしょう。そのファイルは大きくなり、扱いにくくなります。Web サービスでは、nginxこのパラダイムを使用して、個々の Web サイトまたは仮想ホストを独自の構成ファイルに分離することを推奨しています。(このフォルダーはsites-available、ほとんどのディストリビューションの Nginx パッケージで呼び出されますが、一般的にどこにでも適用される設定に適用されるフォルダーもありますconf.d)

  2. セキュリティの分離(ある程度)。個別の設定ファイルにより、各ファイルに対して異なる権限が許可されます。1 人のユーザーが、自分に関連するサービスまたは設定を変更することを許可されている場合、そのユーザーに「すべてを管理する 1 つのファイル」に対する権限を与えるのではなく、権限を持つファイルのみを変更できます。

  3. トラブルシューティング/再構成の容易さ。nginx に戻って、特定のサブドメインを無効にする必要があるとします。各サイトが独自の構成ファイルに分割されているため、1 つの大きなファイルにアクセスしてコメントアウトするのではなく、その 1 つのファイルの名前を変更したり削除したりすることができます。同じことが init にも当てはまります。通常、sysv システムでは、init スクリプトはシンボリック リンクを追加または削除することでサービスを開始または停止します。これにより、ランレベルなどが処理されます。テキスト エディターを呼び出す必要はありません。

これらすべての利点は、複雑さがわずかに増加するだけで得られます。

用語?このデザインには公式なものはないと思いますが、みんな単に「ドット d フォルダー」と呼んでいます。

さらに詳しい情報:

関連情報