なぜinit.dスクリプトがetcにあるのですか?


16

/etcシステム構成ファイルの読み取り/聞き取りを続けています。誰かがさまざまなプログラムを開始/停止/再起動するこれらのスクリプトが通常または/etc代わりに何かである理由について、いくつかの直感を説明/教えてもらえますか?/var/usr


質問は少し意見志向かもしれませんが、実際の事実で質問に答えることができると思います。
ジュリーペレティエ

歴史的理由についての質問は「意見に基づく」ですか?振り返ってみると、何かが起こった理由のいくつかの事実的な理由があります。たとえ「グランドハッカー氏がそうしたから」だけであっても、その質問に今答えている人の意見次第ではありません。
-ilkkachu

質問が「なぜ彼らはそうあるべきか」と言ったことを除いて、それは意見に基づく「カラフルな議論」の引き金です。それを少なくするために少し編集しました。@Adam、これがあなたの意図に反すると感じたら元に戻してください。
-ilkkachu

1
サービスを開始するタイミングと方法はシステム構成だからです。
-OrangeDog

1
ヒステリックなレーズン用。
TMN

回答:


22

早い段階で(歴史的にも、ブートの過程でも...)、(最初にマウントされたファイルシステム)の/etc一部ですが/、そうで/usrはありませんでした(ディスクが大きくなるまで)。 これらのスクリプトは一時的なものではありませんが、一時的なデータを/var保持します。

それはそれほど単純ではありませんが、そのように始まったので、ディレクトリレイアウト全体を作り直す理由はほとんどありません。


1
あなたが言うように、それはそれほど単純ではありません。さまざまな商用UNIXシステムには/etc、ある時点で実際のバイナリ実行可能ファイルが含まれていました。少なくともinit.d最近のシステムでは、ほとんどがスクリプトです。ただし、/etc読み取り専用でマウントすることはできません。
桂佐藤

2
@SatoKatsura:スクリプト言語のように感じるコンパイル済み言語の出現により、いくつかの/ etcスクリプト(initスクリプトも含む)がgoプログラム(バイナリ実行可能ファイル)に置き換えられることに気付き始めました。
スリーブマン

また、最近のsysVinitの置き換えでは、本格的なスクリプトの代わりに単純な構成ファイルが実際に使用/etcされるため、構成されていないものがクリーンアップされる可能性があることに注意してください。
GnP

/tmp一時データを保持します。/var可変データを保持している
ニール

14

起動スクリプトは、実際にはシステム構成の重要な部分です。

起動プロセスは15〜30年前よりもカスタマイズがはるかに少なく、ほとんどのスタートアップ構成は自動化されていますが、スタートアップシーケンスを決定するすべての管理上の選択肢はまだ存在しています。 /etcます。

これは、システムの構成を維持およびバックアップするための非常に集中化された方法です。ほとんどのシステムで/etcは、システム全体を簡単に再インストールできるようにバックアップするだけで十分です。必要なプログラムを使用して完全な再インストールを行い、/etcバックアップを復元するだけです。


3

M. DickeyとM. Pelletierはどちらも、問題の前提を購入しました。しかし、前提は間違っています。

/etcシステム構成ファイル用です」と読んだ場合は、全体像が描かれていないものを読んだことになります。名前を見てください。「et cetera」です。人々は、台所の流し台にある物をすべて一度に入れました。

  • /etc/rc 以前は(すべてのシステムではまだ)プログラムを実行してすべてを起動していました。
  • 最初のユーザープロセスのプログラムイメージファイルは/etc/init、ある時点で(たとえば、XENIXでは、アップスタートがアイデアになるずっと前)でした。
  • /etc/profile/etc/zprofile、残りのすべては間違いなくスクリプトです。
  • OpenBSD /etc/netstartはプログラムです。FreeBSDの/etc/ipfw.rules
  • FreeBSD /etc/rc.suspend/etc/rc.resume; もそうです。そして確か/etc/rc.sendmail/etc/rc.bsdextended、そして/etc/rc.firewall

同様に、「さまざまなプログラムを開始/停止/再起動するスクリプトが通常または/etc代わりに使用されている」と読んだ場合は、完全な絵を描いていない何かを読んだことがあります。/var/usr

  • FreeBSD / PC-BSDの慣習は/usr/local/etc/rc.d/、非オペレーティングシステムrcスクリプト用のディレクトリを作成することです。 rcあらゆる種類の物事のためのスクリプトが下ではなくそこに住んでい/etcます。
  • あなたはdaemontoolsのファミリーにいくつかのサービス管理、物事を置く人々見つけること/var/sv/var/serviceおよび同様の場所を。(私のnoshツールセットは、たとえば、約1,000のサービスバンドルを提供し/var/svます。入ってくるサービスバンドル/etc/service-bundlesは、必要に応じ/usrてマウントおよびチェックするサービスを含め、マウントする前に必要な60〜70のみです/usr。)
  • systemdオペレーティングシステムの規則には/etc/systemd、いくつかのものがあり/run/systemd、いくつかのものがあり、いくつかのものが/usr/lib/systemdあり、(該当しない理由で文書化されていなくても)いくつかのものがあり/usr/local/lib/systemdます。繰り返しますが、「サービスを開始/停止するための物」の大部分はの下で/usrはなく下にあり/etcます。

2

Filesystem Hierarchy Standardを確認してください。これがなぜ詳細に説明されますが、興味のある他の多くのパスに関する情報も含まれています。

ファイルシステム標準は、Unixディストリビューション開発者、パッケージ開発者、およびシステム実装者が使用するように設計されています。ただし、これは主に参照用であり、Unixファイルシステムまたはディレクトリ階層の管理方法に関するチュートリアルではありません。


歴史的背景については説明しません。
するThorbjörnRavnアンデルセン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.