Linux豆知識 185

「/etc/rc*.d」ディレクトリ

このエントリーをはてなブックマークに追加
今回は、「/etc/rc*.d」ディレクトリについて見ていきましょう(*には0から6までの数字が入ります)。

通常であれば、「/etc/rc0.d」~「/etc/rc6.d」まで、7つのディレクトリがあるはずです。そして、それぞれのディレクトリには、シンボリックリンクが存在します。lsコマンドで確認してみましょう。

--
$ ls -l /etc/rc3.d/
lrwxrwxrwx 1 root root 15 11月  7 03:50 2015 /etc/rc3.d/S85httpd -> ../init.d/httpd

--

これらのシンボリックリンクは、前回取り扱った「/etc/init.d」ディレクトリに存在する、サーバソフトウェアなどのサービスを起動するためのスクリプトに張られています。たとえば上の表示のように「/etc/rc3.d/S85httpd」というシンボリックリンクが、「/etc/init.d/httpd」ファイルに張られている、といった具合です。これらのディレクトリは、initプロセスによってシステムを起動・停止する際に参照されます。「rc」に続く数字はランレベルを表します。たとえば「/etc/rc3.d」ディレクトリは、ランレベル3でシステムを起動する際に利用されます。

さて、このディレクトリに収められるファイルは前述のようにシンボリックリンクですが、そのファイル名はたとえば「S85httpd」のように、「S○○」もしくは「K○○」(○○は2桁の数値)で始まるものになっています。ここで「S」で始まるシンボリックリンクがあると、リンク先のスクリプトが「サービス開始(すなわちstartオプションを付加した場合)」の処理が行われ、「K」で始まるシンボリックリンクがあると「サービス停止(すなわちstopオプションを付加した場合)」の処理が行われます。

SもしくはKの後ろの2桁の数値は、スクリプトの実行順を決めるのに利用されます。すなわち、数字が小さいものから大きいものへ、順番に実行されるということです。

このシンボリックリンクを作成する作業は、「chkconfigコマンド(RedHat系)」や「update-rc.dコマンド(Debian系)」などを利用するとほぼ自動で行ってくれます。

サービス起動の仕組み、しっかりと把握しておきましょう。

ページトップへ