/etc/rc.d vs /etc/init.d


15

ubuntuの/etc/init.dディレクトリは、/etc/rc.d/(少なくともarch上で)より標準的であると推測されるディレクトリと(機能的に)正確に同等ですか?起動スクリプトにrc.dではなくinit.dを正規に使用する特別な理由はありますか?


1
実際、arch linuxは/etc/rc.d私が見た唯一のディストリビューションです... bsdで使用される可能性があります。
xenoterracide

1
freebsd
wlraider70で

回答:


16

Ubuntuは/etc/init.dDebianに基づいており、それがDebianが使用するものであるため、UbuntuはSysVinitスクリプトの保存に使用します。Red Hatはを使用し/etc/rc.d/init.dます。Slackwareが使用するものを忘れてしまいました。標準的な場所はありません。

UbuntuはSysVinitからUpstartに切り替えるプロセスにあります/etc/init


2
申し訳ありませんが、Linux起動スクリプトがコピーしたSVR4標準の一部として、/ etc / init.dが標準です。
リッチホモルカ

UpstartのWebサイトは、Ubuntuがバージョン6.10以降にそれを使用していると主張しています
-badp

@badp:6.10ですが、まだでSysVスタイルの初期化スクリプトを使用していました/etc/init.d。移行/etc/init/*.confは後で開始されました(8.04はまだすべてSysVスタイルで、10.04は既に移行中です)。
ジル 'SO-悪である停止

2
Ubuntuは15.04以降、Upstartからsystemdに切り替えました。
ペトロクリフ

7

/etc/init.dは、SVR4の古い歴史的な場所でした。redhatが/etc/rc.d/レベルを追加した理由を忘れました。rc.dに物事を分離したいと思いますが、下位互換性のためにとにかくたくさんのシンボリックリンクを追加する必要がありました。そのため、redhatには/etc/init.dがあり、他の場所にシンボリックリンクします。

そのため、標準の場所は/etc/init.dですが、実際のディレクトリではなくシンボリックリンクである場合があります。

BSDを/etc/rc.localでコピーした実際に古いLinuxディストリビューションがいくつかありましたが、それを使用する人はほとんどいません。



5

歴史的には、/etc/rc.dディレクトリツリーは、通常はrcinitシステムと呼ばれる4.4 BSDのシステム初期化の伝統に従うInitシステムを示します。最新の(Free / Open / Net)BSDシステムとSlackware Linuxはすべてこの伝統に従います。

/etc/init.dディレクトリツリーは、AT&T UNIX、SunOSの、システム初期化のSolarisの伝統を次のシステムV(SysVの)initシステムを示しています。これは一般にSysV Initシステムと呼ばれます。Debian自体はWheezyシリーズではまだこの伝統に従いますが、JessieシリーズではSystemDを使用する予定です。歴史的に、RedHatと派生物はSysV Initを使用していましたが、もう使用していません。

また、時間の経過とともに、両方の初期化スキームの機能がディストリビューションで採用されてきました。


そして、「/ etc / rc.d / init.d /」を含むAIXがあります。列Aの少しと列Bの少し。
DarkHeart16年

0

実際には、少なくともCentOS 6.8サンティアゴで/etc/init.dは、へのソフトリンクにすぎません/etc/rc.d


それがまさに私が意図したことです、ハハ。間違ったつづりについて申し訳ありませんが、すぐに返信を編集しました。
chromechris

なぜ人々は説明せずに投票するのですか?意図的に無関係でない限り、このステートメントは、初心者の読者にとっても価値または意味を持つことができます。ダウン投票するときに説明します。-1の効果を取り消すために+1
Asad Iqbal

0

PuppyLinuxには/etc/rc.d/etc/init.dの両方があり、どちらもシンボリックリンクではありません。シンボリックリンクとは/etc/rc.d/init.dで、レベルを/etc/init.dにリンクします (私はSlackwareベースのPuppyを探しています。Ubuntuベースやその他のフレーバーもあります) 。)それぞれにREADME.txtがあり、そのアプローチを説明しています。


0

それでは/etc/init.d、initスクリプトをすばやく展開できる場所です。このスクリプトをアクティブにするための2番目のステップは、スクリプトを実行するchkconfigことです。実行するとchkconfig --add <yourscript>/etc/init.d/<yourscript>との間でシンボリックリンクが作成されます/etc/rc.d/rcX.d/S50<script>例えば。rcX.dのXはスクリプトのランレベル番号を表し、S50はスクリプトタイプを表します(SとKの2つのタイプがあり、Sは起動時にスクリプトを開始するようにシステムに指示し、Kはシステムにシャットダウン時にスクリプトを正常に終了します。S/ Kの後の数字は、他のスクリプトが最初にアクティブであることに依存するスクリプトがある場合に、これらが発生する順序を表します。デフォルトでは、スクリプト内でランレベルが指定されていない場合、またはランレベルコマンドを発行した場合、CentOS6はランレベル2,3,4,5のS50スクリプトとランレベル0,1,6のK50スクリプトを作成します。

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