rcスクリプトとランレベル毎のシンボリックリンクについてです。
rcとはrun commandの略で、rcスクリプトとは起動スクリプトのことです。
(確認環境:centos6)
目次
サンプル | rcスクリプト*1とランレベル毎のシンボリックリンク*2の図 |
1.rcスクリプト | |
2.rcスクリプトへのシンボリックリンク | |
シンボリックリンクの先頭のSとK | |
3.etc配下のシンボリックリンク |
rcスクリプト*1とランレベル毎のシンボリックリンク*2の図
RedHat系のrcスクリプトとランレベル毎のシンボリックリンクの図です。
青がディレクトリ、緑がスクリプト①、水色がシンボリックリンク②③です。
1.rcスクリプト
図の1の/etc/rc.d/init.d/配下には、サービスの起動や停止を行うrcスクリプトが置かれています。
例として、/etc/rc.d/init.d/httpdは、
apacheのサービスの起動や停止等を行うrcスクリプトです。
2.rcスクリプトへのシンボリックリンク
図の2の/etc/rc.d/配下にはrc0.dからrc6.dまでのランレベルごとのディレクトリがあります。
下の図の青字はディレクトリです。
rc0.dからrc6.dまでのそれぞれのディレクトリの中に、/etc/rc.d/init.d配下のrcスクリプトへのシンボリックリンクがあります。
以下の図は、/etc/rc.d/rc3.d配下を表示しています。水色の文字はシンボリックリンクです。
/etc/rc.d/init.d/httpdの修正を行うとランレベル毎のそれぞれのシンボリックリンクにも反映されます。
シンボリックリンクの先頭のSとK
rcスクリプトへのシンボリックリンクの名称はSから始まるものとKから始まるものがあります。
Sで始まるものは起動です。引数にstartを与えて実行します。
Kで始まるものは停止です。引数にstopを与えて実行します。
S、Kのあとの数字は実行順を示し、数字の小さい順に実行されます。
K15httpd
コマンドの「chkconfig --list httpd」を実行して値が全てoffの場合、/etc/rc.d/rc0.d~rc6.d/配下はK15httpdというシンボリックリンクになります。chkconfigは、ランレベル毎のサービスの自動起動の設定を参照/変更するコマンドです。
S85httpd
「chkconfig --list httpd」を実行して2から5がonの場合、/etc/rc.d/rc2.dからrc5.d配下はS85httpd、それ以外の配下にはK15httpdというシンボリックリンクになります。
3.etc配下のシンボリックリンク
図の3のinit.dとrc0.dからrc6.dまでは、シンボリックリンクです。
RedHat系以外では、/etc/init.d/にrcスクリプトがあります。
関連の記事
Linux サービスの自動起動とランレベル(chkconfig)
Linux シンボリックリンクとは (処理の切替)/p>