initプロセスは、プロセスIDが1ですべてのプロセスの親プロセスである事は知っていましたが、それ以外についてはあまり知識がありませんでした。CentOS6.xのinitプロセスの概要を調べてまとめました。
※目次をクリックすると目次の下部にコンテンツが表示されます。
initプロセスはどのパッケージ?
●実行パスの確認
$ which init
/sbin/init
●パッケージの確認例
$ rpm -qf /sbin/init
upstart-0.6.5-12.el6_4.1.x86_64
initはupstartというパッケージに含まれています。
●パッケージ情報の確認例
$ 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”パッケージは、イベント駆動システムで、タスクの開始、ブート中のサービス、シャットダウン中の停止、システム実行中の管理を制御すると記載されています。
initプロセスの概要
initプロセスの概要についてmanに記載されている内容をまとめました。
・Upstartパッケージによって提供されるプロセス管理デーモン。
・initはシステム上のすべてのプロセスの親プロセス。
カーネルによって実行され、他のすべてのプロセスの起点となる。
・親プロセスが異常終了してしまって残された子プロセスがある場合、代わりに親プロセスになる。
・initによって管理されるプロセスは”jobs”として管理され、/etc/initディレクトリ内にあるファイルによって定義されている。
・Upstartパッケージによって提供されるプロセス管理デーモン。
・initはシステム上のすべてのプロセスの親プロセス。
カーネルによって実行され、他のすべてのプロセスの起点となる。
・親プロセスが異常終了してしまって残された子プロセスがある場合、代わりに親プロセスになる。
・initによって管理されるプロセスは”jobs”として管理され、/etc/initディレクトリ内にあるファイルによって定義されている。
initプロセスとイベント
initはイベントベースのデーモンで、initに管理されているジョブはシステムの状態変化によって自動で起動、停止されます。
関連するイベントについてmanを見てまとめました。
※設定ファイル内での定義とイベントとの関連については以下の記事参照。
Linuxのinitプロセスのジョブ設定の”設定ファイル内でのプロセス定義”、”設定ファイル内でのイベント定義”
●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]…
・ジョブのインスタンスが停止したときに生成。
・情報シグナルとして生成され、他の処理とパラレルに行われる。
関連するイベントについてmanを見てまとめました。
※設定ファイル内での定義とイベントとの関連については以下の記事参照。
Linuxのinitプロセスのジョブ設定の”設定ファイル内でのプロセス定義”、”設定ファイル内でのイベント定義”
●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]…
・ジョブのインスタンスが停止したときに生成。
・情報シグナルとして生成され、他の処理とパラレルに行われる。