ソースコード・リテラシーのススメ

第12回 システム起動用のスクリプトを読む

この記事を読むのに必要な時間:およそ 6 分

前回紹介したように,シェルスクリプトは現在でもUNIX/Linux環境の基盤技術としてさまざまな場面で利用されています。なかでもシステム起動時の処理はシェルスクリプトの独擅場といってもいいでしょう。今回はこのシステム起動時に働くシェルスクリプトを読んでみましょう。

システムの起動,終了の仕組みは,パッケージ管理システムと共にディストリビューションの個性が反映される部分であり,関係するスクリプトの種類や構造などはディストリビューションごとに大きく異なっています。そのため,今回はFedora Core 9のβ版の環境を取りあげることにしました。Fedora Coreのシリーズの中ではスクリプトの機能や配置などの概要はそれほど変っていないとは思いますが,細部はバージョンによって多少異なるかも知れません。

Fedora Core の起動用スクリプトの構成

Fedora Coreに代表されるRed Hat Linux系のディストリビューションでは,システム起動時に働くスクリプト群は /etc/rc.d/以下に集められています。

[kojima@localhost $ ls -F /etc/rc.d/
init.d/  rc*  rc.local*  rc.sysinit*  rc0.d/  rc1.d/  rc2.d/  rc3.d/  rc4.d/  rc5.d/  rc6.d/

Linuxの起動の仕組みについては回を改めて紹介するつもりですが,Fedora Coreが採用している sysvinit形式では,各種サービスの起動/終了スクリプトは/etc/rc.d/init.d/ディレクトリに集めて,そこからランレベルに応じたrc0.d/からrc.6.d/のディレクトリにシンボリックリンクを配置する,という構成になっています。これらのスクリプトはそれぞれのソフトウェアごとのrpmパッケージに収録されており,それらのパッケージをインストールすることで /etc/rc.d/init.d/ディレクトリに追加されます。

[kojima@localhost$ ls -F /etc/rc.d/init.d/
 NetworkManager*            cups*                isdn*           nscd*         sendmail*
 NetworkManagerDispatcher*  cups-config-daemon*  kerneloops*     ntpd*         setroubleshoot*
 acpid*                     dund*                killall*        ntpdate*      single*
 ...
 crond*                     irqbalance*          nfslock*        saslauthd*
 

ランレベルとは

「ランレベル」とはシステムの動作モードのことで,レベルごとに起動するソフトウェア(サービス)を設定することができます。ランレベルはinitと呼ばれるソフトウェアが管理しており,Linuxが標準的に採用している sysvinitでは0から6までのレベルが利用できますが,レベル0と6はシステムの終了と再起動に,レベル1 はrootユーザのみが利用できるシングルユーザモード用に割りあてられているので,自由に使えるレベルは2から5の4つになります。

Fedora Coreではこの4つのレベルに「ネットワークを使わないマルチユーザモード(レベル2)」「全ての機能が使えるマルチユーザモード(レベル3)」「X Window経由でログインするマルチユーザモード(レベル5)」の3種を割り当て,レベル4は予備としています。

一方,/etc/rc.d/の直下にあるrcやrc.local,rc.sysinitは特定のランレベルではなくシステム全体を管理するためのスクリプトです。rcは指定したランレベルに応じて必要なスクリプトを走らせる機能を,rc.localは汎用的な設定には馴染まないそのシステム固有の設定処理を,rc.sysinitはシステムの起動時に一度だけ実行される処理を,それぞれ担っています。

これらの中から,今回はシステム起動時に最初に実行されるrc.sysinitスクリプトを眺めてみます。ただしrc.sysinitは900行近くある大きなスクリプトなので,要点だけを摘み読みすることにします。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたのが,いつの間にかミイラ取りがミイラになってOSSを仕事にするようになってしまいました。最近はスペシャリスト養成を目的とした専門職大学院で教壇に立ったりもしています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html

コメント

コメントの記入