オープンソース/Linux

情報システムのトピックス-PR-

第1回 Linuxの起動プロセスとsystemd

2014/07/22
中井 悦司=レッドハット (筆者執筆記事一覧

 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ディストリビューションにおいて、独自のスクリプトが使用されている。

  • このエントリーをはてなブックマークに追加
  • Evernoteでクリップする
  • 印刷する

連載新着連載目次へ >>

今週のトピックス-PR-

この記事に対するfacebookコメント

nikkeibpITpro

▲ ページトップ

CIO Computerworld
ITpro EXPO 2014

Twitterもチェック

執筆者一覧

イベントINFO -PR-

最新号

注目の書籍

好評発売中!

ラズパイマガジン

PCとして、電子工作
マシンとしてRaspberry Piをトコトン楽しむためのムック!