Red Hat Enterprise Linux 7(RHEL7)では、「systemd」という新しいLinuxの起動処理とサービス管理の仕組みが導入された。システムの起動処理にかかる時間を短縮するなど、さまざまなメリットを備えている。

 従来のバージョンであるRHEL5では「SysVinit」、RHEL6では「Upstart」という仕組みが採用されていた。systemdは、これらの仕組みとは大きく異なるプロセスで、Lnuxを起動する。systemdは従来の仕組みとどう異なるのか、それによってどんなメリットが得られるのか、詳しく解説していこう。

これまではシェルスクリプトでシステム起動を管理

 SysVinitやUpstartでは、システムを起動してLinuxカーネルが動き始めると、最初にシェルスクリプト「/etc/rc.d/rcsysint」によって、ファイルシステムの整合性チェックとマウント処理、メモリースワップ領域の有効化などを行う。その後、シェルスクリプト「/etc/rc.d/rc」によって、サービス起動用スクリプト「/etc/init.d/<サービス名>」を順番に実行して、chkconfigコマンドで設定されたサービス群を起動する。そしてサービス群の起動後に、コンソールログインを受け付ける「mingetty」を起動する。これらのスクリプト実行の仕組みが、「SysVinit」や「Upstart」である。

 例えばRHEL5の場合、Linuxカーネルの起動直後に、最初のプロセス(プロセスID=1)として、「/sbin/init」が実行される。これが「SysVinit」の本体である。このプロセスは、設定ファイル「/etc/inittab」に従って、前述のスクリプトを実行していく。/etc/inittabの記述内容と、その処理の流れを対応付けると、図1のようになる。

図1●SysVinitによる起動処理の流れ
[画像のクリックで拡大表示]

 このようなシェルスクリプトを利用したシステム起動処理は、Linuxでは長く利用されてきたものだ。処理のカスタマイズが容易なので、さまざまなLinuxディストリビューションにおいて、独自のスクリプトが使用されている。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら