名 前
initctl − simpleinit(8) を 制 御 す る た め の ユ ー テ ィ リ テ ィ
書 式
need
[-r] service
display-services
provide service
概 略
initctl プ ロ グ ラ ム は 、 シ ス テ ム 起 動 ス ク リ プ ト の 堅 牢 さ ・ 拡 張 性 ・ 可 読 性 を 向 上 す る た め に デ ザ イ ン さ れ て い る 。 現 在 で は 、 SysV 形 式 の 起 動 ス ク リ プ ト で 使 わ れ て い る 複 雑 で 脆 い 多 く の シ ン ボ リ ッ ク リ ン ク に よ る 方 法 を 使 う こ と な く 、 モ ジ ュ ー ル 化 し た 起 動 ス ク リ プ ト を 書 く こ と が で き る 。 各 ス ク リ プ ト は 、 そ れ を 起 動 す る 前 に 何 が 必 要 か を need(8) を 使 っ て 簡 単 に 宣 言 で き る 。
need の 説 明
need プ ロ グ ラ ム は 、 simpleinit(8) に 対 し て service (通 常 は /sbin/init.d 内 の ス ク リ プ ト ) を 開 始 す る よ う に 指 示 し 、 そ の service が 使 用 可 能 に な る ま で 待 た せ る た め の ユ ー テ ィ リ テ ィ で あ る 。 service が 既 に 使 用 可 能 な 場 合 、 再 び 起 動 さ れ る こ と は な い 。
-r オ プ シ ョ ン は 、 simpleinit(8) に 対 し て service ま で の サ ー ビ ス を 「 押 し 戻 す (roll back)」 (停 止 す る ) よ う に 指 示 す る (指 定 さ れ た サ ー ビ ス は 含 ま な い )。 service が 指 定 さ れ な い 場 合 、 全 て の サ ー ビ ス を 停 止 す る 。 よ っ て 、 -r オ プ シ ョ ン に よ り 、 シ ス テ ム を 部 分 的 ま た は 全 体 的 に 順 序 立 て て シ ャ ッ ト ダ ウ ン す る こ と が で き る 。 実 行 す る た め に は 、 未 だ に shutdown(8) プ ロ グ ラ ム が 必 要 と さ れ る 。
display-services の 説 明
display-services と し て 起 動 さ れ た 場 合 、 現 在 使 用 可 能 な サ ー ビ ス の リ ス ト と 失 敗 し た サ ー ビ ス の リ ス ト を 標 準 出 力 に 書 き 出 す 。
provide の 説 明
provide と し て 起 動 さ れ た 場 合 、 simpleinit(8) に 対 し て 親 プ ロ セ ス (呼 び 出 し た プ ロ セ ス ) が service と い う 名 前 の サ ー ビ ス を 提 供 す る よ う に 指 示 す る 。 呼 び 出 し た プ ロ セ ス が 正 常 に (ス テ ー タ ス 0 で ) 終 了 し た 場 合 、 サ ー ビ ス が 使 用 可 能 で あ る と 考 え ら れ る 。 service の イ ン ス タ ン ス は 1 つ だ け 起 動 さ れ る の で 、 他 に こ の サ ー ビ ス を 提 供 す る プ ロ グ ラ ム は ブ ロ ッ ク さ れ て 失 敗 す る 。
provide を 使 う こ と に よ り 、 同 じ (一 般 的 な ) サ ー ビ ス を 提 供 で き る 複 数 の プ ロ グ ラ ム を 持 つ こ と が で き る (例 え ば sendmail と qmail は 共 に mta サ ー ビ ス を 提 供 す る )。 こ こ で 、 実 際 に サ ー ビ ス を 提 供 す る の は 1 つ だ け で あ る 。 こ れ は 設 定 フ ァ イ ル を チ ェ ッ ク す る サ ー ビ ス 起 動 ス ク リ プ ト で 使 う こ と が で き る 。
終 了 コ ー ド
サ ー ビ ス が 正 常 に 起 動 し た 場 合 、 need か ら の 終 了 コ ー ド は 0 で あ る 。 サ ー ビ ス が 失 敗 し た 場 合 は 1 で あ る 。 サ ー ビ ス が 使 用 不 能 の 場 合 (つ ま り 、 設 定 フ ァ イ ル で 不 可 に さ れ て い る 場 合 ) は 2 で あ る 。 こ れ ら の 終 了 コ ー ド は 、 サ ー ビ ス 起 動 ス ク リ プ ト か ら の 終 了 コ ー ド を 反 映 す る 。 サ ー ビ ス が 正 常 に 停 止 し た 場 合 、 need -r か ら の 終 了 コ ー ド は 0 で あ る 。 サ ー ビ ス が 停 止 で き な か っ た 場 合 は 1 で あ る 。 サ ー ビ ス が 開 始 で き な か っ た 場 合 は 2 で あ る 。 サ ー ビ ス の シ ャ ッ ト ダ ウ ン ス ク リ プ ト は 、 (正 常 な 場 合 の ) 0 と (失 敗 の 場 合 の ) 1 し か 返 さ な い 。 サ ー ビ ス が 提 供 で き た 場 合 、 provide の 終 了 コ ー ド は 0 で あ る 。 提 供 で き な か っ た 場 合 は 1 で あ る 。 親 プ ロ セ ス が init の 子 で な い 場 合 は 2 で あ る 。 こ の プ ロ グ ラ ム は 、 そ の サ ー ビ ス を 初 期 化 す る 他 の サ ー ビ ス 提 供 プ ロ グ ラ ム を ブ ロ ッ ク し て 待 た せ る 。
シ グ ナ ル
initctl(8) は simpleinit(8) と 通 信 す る た め に SIGUSR1, SIGUSR2, SIGPOLL を 使 う 。 こ れ ら の シ グ ナ ル を need(8) に 送 っ て は な ら な い 。
フ ァ イ ル
/dev/initctl |
simpleinit(8) に よ っ て 作 成 さ れ る 制 御 FIFO で 、 initctl(8) が コ マ ン ド を 書 き 込 む 。 |
関 連 項 目
simpleinit(8),
init(8)
need(8) を 使 っ た 新
し い ブ ー ト ス
ク リ プ ト シ ス
テ ム に つ い て
の も っ と 全 面
的 な 議 論 は 、
http://www.atnf.csiro.au/~rgooch/linux/boot-scripts/
で 閲 覧 で き る
。
著 者
Richard Gooch (rgooch [AT] atnf.au)
入 手 先
Util-Linux パ ッ ケ ー ジ は ftp://ftp.??.kernel.org/pub/linux/utils/util-linux/ か ら 入 手 可 能 で あ る 。