勉強前イメージ
systemdの勉強したくて調べてたらSysvinit出てきた。
initと何が違うのか?
カーネルの後に起動する各プロセスを立ち上げるなにかってイメージ
最近はsystemdに変わった
調査
SysVinitとは
- SysVinitの概略
Unix系OSで広く使われてきたOS起動の仕組み。
最近のOSではUpstartやsystemdに変わっている。
- SysVinitとは起動の順番でいうとどこか
下記の順番でいくと、5番目のプロセス実行の際に稼働するのがSysVinitになります。
- 電源を入れる
- BIOS/UEFIの起動
- ブートローダーの読み込み
- カーネルの読み込み
- プロセス実行 ←ココ!!!
- ログイン可能
SysVinitについて中身を見ていく
特徴
SysVinitでは、一番最初に initプロセス
を開始します
initプロセスは
プロセスIDが1番を持っています。
実際にCentOS5で確認してみると init
が PID(プロセスID)が1になっています。
[root@localhost ~]# ps aux | grep [i]nit
root 1 0.1 0.0 10372 732 ? Ss 20:48 0:00 init [3]
initプロセスは、 /etc/inittab
に書かれたプロセスを順番に起動しますが、
並列ではなく直列でしか起動できないので、時間がかかるというデメリットがありました。
SysVinitの実行順序
-
initプロセスが開始される(pid=1)
-
/etc/inittabファイルを読み込む
1.システムの初期化のシェルを起動/etc/rc.d/rc.sysinit
は
ホスト名や、ネットワークの設定をしたり起動に必要な初期化処理を行います。/etc/inittab# System initialization. si::sysinit:/etc/rc.d/rc.sysinit
2.rcスクリプトの実行
デフォルトランレベル確認。
下記だったら デフォルトランレベル3
ランレベルについては こちら/etc/inittab# Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
デフォルトランレベルに合わせたスクリプトの実行
/etc/inittabl0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 ← これ! l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6
そもそもinitプロセスって何よ?
initプロセス
は他のプロセスを起動させる、親プロセス。
Linuxカーネルの起動後一番最初に起動されるので、↑で書いたとおりPIDは1が付与される
[root@localhost ~]# pstree
init─┬─acpid
├─anacron
├─atd
├─auditd─┬─audispd───{audispd}
│ └─{auditd}
├─automount───4*[{automount}]
├─crond
├─dbus-daemon───{dbus-daemon}
├─dhclient
├─events/0
├─gam_server
├─gpm
├─hald───hald-runner─┬─hald-addon-acpi
│ ├─2*[hald-addon-keyb]
│ └─hald-addon-stor
├─hcid
├─hidd
├─2*[iscsid]
├─iscsiuio───2*[{iscsiuio}]
├─khelper
├─klogd
├─...
├─...
勉強後イメージ
initが起動していく順序とかを決めたようなやつって感じか...
systemdだったら並列になってるし
イメージはなんとなく合ってたけど、ちゃんと分かったかも
/etc/inittabの中身見るためにCentOS5をインストールしたけど、インストール画面おしゃんだった