web-dev-qa-db-ja.com

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

読み続けている/etcはシステム構成ファイル用です。誰かが、さまざまなプログラムを開始/停止/再起動するこれらのスクリプトが通常/etc の代わりに /varまたは/usrまたは同様のもの?

16
Adam Thompson

早い段階で(歴史的にも、起動プロセス中も...)、/etc/(最初にマウントされたファイルシステム)の一部ですが、/usrは(ディスクが取得されるまで)大)。 /vartemporaryデータを保持しますが、これらのスクリプトは一時的ではありません。

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

22
Thomas Dickey

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

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

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

14
Julie Pelletier

M. DickeyとM. Pelletierの両方が問題の構内に買収しました。しかし、前提は間違っています。

/etcはシステム構成ファイル用」という説明を読んだ場合、全体像を描かないものを読んだことになります。名前を見てください。 「et cetera」です。人々はキッチンシンクのすべてを一度にそこに置いてきました。

  • /etc/rcは、すべてを起動するために実行されるプログラムでした(一部のシステムでは今でもそうです)。
  • 最初のユーザープロセスのプログラムイメージファイルは、ある時点で/etc/initでした(たとえば、XENIXでは、upstartが発想される前でもありました)。
  • /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の慣例では、オペレーティングシステム以外のrcスクリプト用に/usr/local/etc/rc.d/ディレクトリを作成します。 rcスクリプトは/etcの下ではなく、あらゆる種類のものに存在します。
  • いくつかのサービス管理を/var/sv/var/serviceなどの場所に配置するdaemontools-familyの人々を見つけるでしょう。 (一例として、私のnoshツールセットは/var/svで約1000のサービスバンドルを提供します。/etc/service-bundlesに入るサービスバンドルは、/usrがマウントされ、必要に応じて/usrをマウントおよびチェックするサービスを含みます。)
  • systemdオペレーティングシステムの規約には、/etc/systemdに存在するもの、/run/systemdに存在するもの、/usr/lib/systemdに存在するもの、および( 適用されない理由で文書化されていない場合でも/usr/local/lib/systemdにあるもの。繰り返しますが、「サービスの開始/停止に関するもの」の大部分は/usrではなく/etcの下にあります。
3
JdeBP

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

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

2
draeath

Digital UNIXは、スクリプトを/sbin/init.dディレクトリ。また、HP-UXの ロゼッタストーンによると

2
thrig