web-dev-qa-db-ja.com

/etc/rc.dで「rc」は何を表していますか?

誰かがrc.dの完全な形式について、たとえば/etc/rc.d

デーモンの起動、停止、再起動を制御するためのスクリプトが含まれています。しかし、正確にはrcの意味は何ですか?

38
user3134198

これはUnixの歴史のかなり前に遡ります。 rcは「実行コマンド」を表し、実際には意味があります。

rc

runco​​m(.cshrcまたは/ etc/rcなど)rcコマンドは、runco​​m機能からMIT CTSSシステム、1965年頃)から派生しています。Vickiに伝えられたように、Brian KernighanおよびDennis Ritchieから褐色:

「ファイルに保存された一連のコマンドを実行する機能がありました。これは、「コマンドの実行」のためのrunco​​mと呼ばれ、ファイルは「runco​​m」と呼ばれます。Unixのrcは、その使用からの化石です。」

ソース

コマンド処理シェルを通常のスレーブプログラムにするという考えは、Multicsの設計と、ルイスポウザンによるCTSSの先行プログラムであるRUNCOMのソースであり、 "。rc"サフィックスのソースは一部のUnix構成ファイル。この関数の "Shell"という名前を初めて覚えたのは、(BTLの)Doug EastwoodによるMulticsデザインドキュメントでした。コマンドラインに値を返すコマンドは、元のMulticsシェルでは「評価されたコマンド」と呼ばれ、Unixがバッククォートを使用する場合は角括弧を使用していました。

ソース

要約すると、rc.dは実際の使用方法であるランレベルでの「コマンドの実行」を表します。の意味 .dはここにあります 。dはディレクトリ名で何を表していますか?

Bourne Shellの子孫であるPlan 9に含まれているシェルインタープリターrcと混同しないでください。

39
Braiam

jargon file によると、rcの頭字語の意味を尋ねている場合、runco​​m

rcファイル:/R�Cfi:l /、n。 [UNIX: [〜#〜] ctss [〜#〜] システム1962-63のrunco​​mファイルから、起動スクリプト/ etc/rcを使用]アプリケーションプログラムの起動手順を含むスクリプトファイル(またはオペレーティングシステム全体)。通常、システムの実行後に手動で呼び出されたが、システムが起動するたびに自動的に実行される種類のコマンドを含むテキストファイル。 dot fileprofile (sense 1)も参照してください。

ソースhttp://www.catb.org/jargon/html/R/rc-file .html

実行レベル

バージョン7のUnixでは/etc/rcはランレベルに置き換えられました。したがって、最近のLinuxボックスでは、このタイプのディレクトリ構造が表示されます。

ランレベルシステムは、バージョン7 Unixで使用されていた従来の/ etc/rcスクリプトを置き換えました。

ソース:https://en.wikipedia.org/wiki/Runlevel

$ ls -l
total 32
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 init.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc0.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc1.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc2.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc3.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc4.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc5.d
drwxr-xr-x. 2 root root 4096 Jan  3 12:21 rc6.d

これらの各ディレクトリは ランレベル を表します。異なるディストリビューションでは、これらをわずかに異なる方法で使用します。たとえば、Red Hatベースのディストリビューションでは、実行レベル3はデスクトップなしでシステムを実行するためのものであり、5はデスクトップを実行するためのものです。

特定のサービスを別のレベルではなくあるレベルで開始したいことを指定するには、最初に特定のサービスの実際のrcスクリプトへのリンクを作成し、リンクに特別な方法で名前を付ける必要があります。リンクは次のようになります。

$ ls -l rc3.d/
total 0
lrwxrwxrwx. 1 root root 20 Dec  7 20:56 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx. 1 root root 18 Dec  7 20:56 K85ebtables -> ../init.d/ebtables
lrwxrwxrwx. 1 root root 17 Dec  7 20:56 K90network -> ../init.d/network
lrwxrwxrwx. 1 root root 28 Jan  3 12:21 S04dkms_autoinstaller -> ../init.d/dkms_autoinstaller
lrwxrwxrwx. 1 root root 15 Dec 14 22:57 S95jexec -> ../init.d/jexec

Kで始まる名前は、このランレベルでこのサービスを強制終了する必要があることを意味し、Sは、開始する必要があることを意味します。 KSの後の数字は、サービスを強制終了して開始する順序を示しています。

近年、このアプローチは2つの新しいテクノロジーを支持して衰退し始めました systemdupstart

8
slm