tatami @Wiki
init処理
最終更新:
匿名ユーザー
-
view
init処理(起動処理)について
RunLevel
RunLevelは以下のように設定されている。
init0 = 停止
init1 = シングルユーザーモード
init2 = マルチユーザーモード
init3 = init2に同じ
init4 = init2に同じ
init5 = init2に同じ
init6 = 再起動
init0 = 停止
init1 = シングルユーザーモード
init2 = マルチユーザーモード
init3 = init2に同じ
init4 = init2に同じ
init5 = init2に同じ
init6 = 再起動
rc.dの制御
OSの起動時に、/etc/inittab から rc.d内のスクリプトが起動されるが、
最初に rcS.d 内のスクリプトが起動される。
次に使用するランレベルに合わせてrc.d内の起動スクリプトを実行する。
例えば、init0=停止の場合は、rc0.d内のスクリプトが実行される。
"S"で始まる物: 起動、
"K"で始まる物: 停止、
"S"、"K"の後に続く数字順に実行される。
Debianの起動時のデフォルトランレベルは、rc2.d
最初に rcS.d 内のスクリプトが起動される。
次に使用するランレベルに合わせてrc.d内の起動スクリプトを実行する。
例えば、init0=停止の場合は、rc0.d内のスクリプトが実行される。
"S"で始まる物: 起動、
"K"で始まる物: 停止、
"S"、"K"の後に続く数字順に実行される。
Debianの起動時のデフォルトランレベルは、rc2.d
実行例
update-rc.d というコマンドで実行する。
以下は、mt-daapdでの実行例。
以下は、mt-daapdでの実行例。
リンクの作成
defaultsで行うと、RunLevel 0 1 6 に順番20で停止の処理、RunLevel 2 3 4 5 に順番20で起動の処理が支持される。
# update-rc.d mt-daapd defaults Adding system startup for /etc/init.d/mt-daapd ... /etc/rc0.d/K20mt-daapd -> ../init.d/mt-daapd /etc/rc1.d/K20mt-daapd -> ../init.d/mt-daapd /etc/rc6.d/K20mt-daapd -> ../init.d/mt-daapd /etc/rc2.d/S20mt-daapd -> ../init.d/mt-daapd /etc/rc3.d/S20mt-daapd -> ../init.d/mt-daapd /etc/rc4.d/S20mt-daapd -> ../init.d/mt-daapd /etc/rc5.d/S20mt-daapd -> ../init.d/mt-daapd
もっと起動/停止の順番を細かく支持する場合は、以下のようにする。
# update-rc.d mt-daapd start 90 2 3 4 5 . stop 10 0 1 6 . Adding system startup for /etc/init.d/mt-daapd ... /etc/rc0.d/K10mt-daapd -> ../init.d/mt-daapd /etc/rc1.d/K10mt-daapd -> ../init.d/mt-daapd /etc/rc6.d/K10mt-daapd -> ../init.d/mt-daapd /etc/rc2.d/S90mt-daapd -> ../init.d/mt-daapd /etc/rc3.d/S90mt-daapd -> ../init.d/mt-daapd /etc/rc4.d/S90mt-daapd -> ../init.d/mt-daapd /etc/rc5.d/S90mt-daapd -> ../init.d/mt-daapd
リンクの削除
# update-rc.d -f mt-daapd remove update-rc.d: /etc/init.d/mt-daapd exists during rc.d purge (continuing) Removing any system startup links for /etc/init.d/mt-daapd ... /etc/rc0.d/K10mt-daapd /etc/rc1.d/K10mt-daapd /etc/rc2.d/S90mt-daapd /etc/rc3.d/S90mt-daapd /etc/rc4.d/S90mt-daapd /etc/rc5.d/S90mt-daapd /etc/rc6.d/K10mt-daapd
- f オプションは、/etc/init.d に mt-daapdがあっても rcX.d ないのリンクを削除する。
/etc/init.d に mt-daapdがない場合は、-f オプションをつけなくても削除される。
/etc/init.d に mt-daapdが残っている場合は、inetdをupdateすると、またリンクが作成される。どのような起動順番で作成されるかは、やってないのでわからない。
/etc/init.d に mt-daapdが残っている場合は、inetdをupdateすると、またリンクが作成される。どのような起動順番で作成されるかは、やってないのでわからない。
参考:
- daemon の起動設定
- 起動処理(init)とランレベル(rc.d)の制御(UNIXな生活)
- サービスの起動と停止 (update-rc.d)
- Debian リファレンス 第 9 章 - Debian システムのチューニング