Linuxのinitプロセスの概要

initプロセスは、プロセスIDが1ですべてのプロセスの親プロセスである事は知っていましたが、それ以外についてはあまり知識が無かったのでinitプロセスの概要を調べてまとめました。

1)initプロセスはどのパッケージ?


 
CentOS6.5環境のinitプロセスについて確認しました。
 
●実行パスの確認
 
$ which init
/sbin/init
 
●パッケージの確認
 
$ rpm -qf /sbin/init
upstart-0.6.5-12.el6_4.1.x86_64
 
initはupstartというパッケージに含まれています。
 
●パッケージの情報
 

$ yum info upstart
  :
Available Packages
Name        : upstart
Arch        : x86_64
Version     : 0.6.5
Release     : 13.el6_5.3
Size        : 177 k
Repo        : updates
Summary     : An event-driven init system
URL         : http://upstart.ubuntu.com
License     : GPLv2 and LGPLv2+
Description : Upstart is an event-based replacement for the /sbin/init daemon
            : which handles starting of tasks and services during boot, stopping
            : them during shutdown and supervising them while the system is
            : running.

 
上記パッケージの説明で、”Upstart”パッケージは、イベント駆動システムで、タスクの開始、ブート中のサービス、シャットダウン中の停止、システム実行中の管理を制御すると記載されています。
 

2)initプロセスの概要


 
initプロセスの概要についてmanに記載されている内容をまとめました。
 
・Upstartパッケージによって提供されるプロセス管理デーモン。
 
・initはシステム上のすべてのプロセスの親プロセス。
 
カーネルによって実行され、他のすべてのプロセスの起点となる。
 
・親プロセスが異常終了してしまって残された子プロセスがある場合、代わりに親プロセスになる。
 
・initによって管理されるプロセスは”jobs”として管理され、/etc/initディレクトリ内にあるファイルによって定義されている。
 

3)initプロセスとイベント


 
initはイベントベースのデーモンで、initに管理されているジョブはシステムの状態変化によって自動で起動、停止されます。
 
関連するイベントについてmanを見てまとめました。
 
①startup
 
・書式
startup [ENV]…
 
・マウント、パーティション、ドライブ、ファイルシステム、ドライバーのロード、Xウィンドウの開始、ログイン環境などの処理に関係する。
 
②starting
 
・書式
starting JOB=JOB INSTANCE=INSTANCE [ENV]…
 
・ジョブの新しいインスタンスが開始するときに生成。
 
・このイベントによって開始されるすべてのサービス、タスク、ジョブを待機する。これによって依存性が有効に管理される。
 
③started
 
・書式
started JOB=JOB INSTANCE=INSTANCE [ENV]…
 
・ジョブのインスタンスの起動が終了し、実行中になる時に生成。
 
・情報シグナルとして生成され、他の処理とパラレルに行われる。
 
④stopping
 
・書式
stopping JOB=JOB INSTANCE=INSTANCE RESULT=RESULT [PROCESS=PROCESS] [EXIT_STATUS=STATUS] [EXIT_SIGNAL=SIGNAL] [ENV]…
 
・ジョブのインスタンスの停止処理が開始するときに生成。
 
・このイベントによって開始されるすべてのサービス、タスク、ジョブを待機する。これによって依存性が有効に管理される。
 
⑤stopped
 
・書式
stopped JOB=JOB INSTANCE=INSTANCE RESULT=RESULT [PROCESS=PROCESS] [EXIT_STATUS=STATUS] [EXIT_SIGNAL=SIGNAL] [ENV]…
 
・ジョブのインスタンスが停止したときに生成。
 
・情報シグナルとして生成され、他の処理とパラレルに行われる。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です