プロセス制御システム(SysVinit)起動の概要
プロセス制御システム(SysVinit)は、以下の5部に分けて解説していきます。
- プロセス制御システム(SysVinit)起動の概要
- プロセス制御システム(SysVinit)/etc/inittabファイル
- プロセス制御システム(SysVinit)ランレベル
- プロセス制御システム(SysVinit)/etc/rc.dの中身
- プロセス制御システム(SysVinit)サービスの起動と停止
SysVinitの概要
SysVinitは、UNIXで広く使われてきたSystem V(UNIX System V)をベースに作られたプロセス制御システムです。SysVinitという名称は、そこのことに由来しています。現在では多くのLinuxディストリビューションでsystemdが主流となっていますが、SysVinitを採用しているシステムも存在します。SysVinitの起動プロセスは、カーネルの起動後にinitプロセスが実行されることで開始されます。
initプロセスの処理手順
SysVinitの起動時に、initプロセスが行う処理は以下の通りです。
ステップ | 説明 |
---|---|
1 | /etc/inittabファイルを読み込む |
2 | /etc/rc.d/rc.sysinitファイルを実行(初期設定) |
3 | /etc/rc.d/rcファイルを実行(サービスを順次起動) |
4 | /etc/rc.d/rcスクリプトが/etc/rc.d/rc3.dディレクトリ以下のSから始まるファイルを呼び出す(サービスファイルへのリンク) |
5 | 実際には、/etc/rc.d/init.dディレクトリ以下のファイルが実行される |
【ステップ1】 /etc/inittabファイルを読み込む
/etc/inittab
ファイルには、initプロセスの設定情報が含まれています。このファイルを読み込むことで、システムのランレベルや起動時に実行するスクリプトなどが決定されます。
【ステップ2】 /etc/rc.d/rc.sysinitファイルを実行する
/etc/rc.d/rc.sysinit
ファイルは、システムの初期設定を行います。ここには、ファイルシステムのチェックやマウント、ネットワーク設定などの初期化処理が含まれています。
【ステップ3】 /etc/rc.d/rcファイルを実行する
/etc/rc.d/rc
ファイルは、システムのランレベルに応じてサービスを順次起動するためのスクリプトです。指定されたランレベルに従って、適切なサービススクリプトを実行します。
【ステップ4】 /etc/rc.d/rcスクリプトが/etc/rc.d/rc3.dディレクトリ以下のSから始まるファイルを呼び出す
デフォルトのランレベルが3の場合、/etc/rc.d/rc3.d
ディレクトリ以下のSから始まるファイルが呼び出されます。これらのファイルは、サービスを起動するためのシンボリックリンクです。
【ステップ5】 実際には、/etc/rc.d/init.dディレクトリ以下のファイルが実行される
/etc/rc.d/init.d
ディレクトリ以下の実際のサービススクリプトが実行されます。これにより、各サービス(デーモン)が起動します。
サービスとデーモン
- サービス:コンピュータやソフトウェアがユーザーや他の機器、ソフトウェアに提供する機能のこと。
- デーモン:サービスを提供するプログラムのこと。デーモンを起動させるためのスクリプトファイルを「サービスファイル」と呼びます。
まとめ
SysVinitは、カーネルの起動後にinitプロセスが実行され、その後一連のスクリプトファイルが実行されることでシステム全体の初期化とサービスの起動が行われます。サービスはデーモンという形で提供され、これを起動するためのスクリプトがサービスファイルです。SysVinitはシンプルで理解しやすい構造を持つため、systemdとは異なる管理方法を提供しています。