回答:
/etc/init.d
System V initツール(SysVinit)で使用されるスクリプトが含まれています。これはLinux用の従来のサービス管理パッケージであり、init
プログラム(カーネルの初期化が完了したときに実行される最初のプロセス¹)と、サービスを開始および停止してそれらを構成するインフラストラクチャが含まれます。具体的には、内のファイルは、/etc/init.d
に対応するシェルスクリプトですstart
、stop
、restart
(サポートされている場合)、およびreload
特定のサービスを管理するためのコマンド。これらのスクリプトは、直接、または(最も一般的には)他のトリガー(通常、シンボリックリンクの存在)を介して呼び出すことができます/etc/rc?.d/
。
/etc/init
Upstartが使用する構成ファイルが含まれています。Upstartは、Ubuntuが支持する若いサービス管理パッケージです。内のファイルは/etc/init
どのように、いつまで成り上がりを語っ設定ファイルですstart
、stop
、reload
設定、または照会status
サービスで。明快な時点で、UbuntuはSysVinitからUpstartに移行しているため、Upstart構成ファイルが優先されるにもかかわらず、多くのサービスにSysVinitスクリプトが付属している理由を説明しています。実際、SysVinitスクリプトはUpstartの互換性レイヤーによって処理されます。
.d
ディレクトリ名に一般的に(例えば、特定の状況のための多くの構成ファイルやスクリプトを含むディレクトリを表す/etc/apt/sources.list.d
仮想作るために連結されているファイルが含まれていますsources.list
。/etc/network/if-up.d
ネットワークときに実行されるスクリプトが含まれ、私は NTER Fのエースがアクティブになるが)。通常、この構造は、ディレクトリ内の各エントリが異なるソースによって提供される場合に使用されるため、単一の構成ファイルを解析して参照することなく、各パッケージが独自のプラグインを配置できます。この場合、「init」がディレクトリの論理名であり、SysVinitが最初に使用されinit.d
、Upstartが使用されたことがわかりますinit
同様の目的のディレクトリの場合(/etc/upstart.d
代わりに使用されていれば、より「主流」であり、おそらく慢ではなかったでしょう)。
¹initrd をカウントしない
upstart
またはという名前のパッケージがあるかどうかを確認しますsysvinit
。また、最近のバージョンでは、それsystemd
も同様である可能性があります(回答を書いたとき、Ubuntuには存在していませんでした)。それが提供するパッケージです/sbin/init
(dpkg -S /sbin/init
)。
upstart
/ sbin / init(ran dpkg -S /sbin/init
)を提供するパッケージです。しかし、Bitnamiはそのスクリプトを/etc/init.dディレクトリに配置しました。これは上記の@AsheeshRに対するあなたの答えと矛盾していませんか?ありがとうございました。
「.d」は通常、ディレクトリ名に追加され、以前は単一のスクリプトまたは単一の構成ファイルで処理されていた(または処理されていた)処理が便宜上複数のファイルに分割されたことを示しますが、一緒に含めるか、実行する必要があります。
たとえば、/etc/apache/conf.d/
または/etc/apt/sources.d/
含める/実行する順序が重要な場合、これらのディレクトリ内のファイルは、正しい順序で実行されるように、「00-default」や「80-user」などの番号で始まる場合があります。
この場合/etc/init.d/
、「init.d」内のスクリプトをすべて実行する必要があることを示しています。しかし、今日では、最新のオペレーティングシステムの初期化システムはそれよりも少し複雑ですが、ディレクトリ名はまだそこにあります。
あなたが指摘するように、「。d」の命名法は不可解で奇妙であり、現代のシステムには実際には場所がありません。ほとんどの現代のサービスはそれを落とす傾向があることに気付くでしょう。
ディレクトリが存在する理由/etc/init
とそうでない理由/etc/upstart
は、Upstartがプロジェクト名であるためです。実際にインストールされたバイナリは依然として/sbin/init
存在するため、バイナリと一致しない名前を設定することは意味がありません。
rules.d
、Xorgの比較的最近xorg.conf.d
、古すぎない/etc/profile.d
などを参照してください。
.d
ディレクトリはSystem Vで入力されました。当時は不可解な表記であり、最終的にはコードベースに入り込んで離れられなかった一人の考えです。たとえば、cat
実行するタスクの名前が悪いと思う場合は、変更するためにシステム全体で何個のファイルに触れる必要があるかを想像してください。