2.3. SysVinitとランレベル
2.3.1. SysVinitによる起動
SysVinitはかつて使用されていたLinuxの起動の仕組み。 現在はsystemdのほうが主流となっている。
SysVinitによる起動順序は以下の通り。
- initが/etc/inittabファイルを読み込む
- initが/etc/rc.sysinitnスクリプトを読み込む
- initが/etc/rcスクリプトを実行する
- /etc/rcスクリプトが /etc/rc<ランレベル>.dディレクトリ以下のスクリプトを実行する
SysVinitはサービスを順次起動に時間がかかる、依存関係を適切に処理できない問題があった。これらの問題を解決した起動の仕組みにはupstartやsystemdがある。
Upstart
UpstartはSysVinitを改善した新しいinitの仕組みで以下の特徴がある。
- 依存関係を適切に処理
- 並列起動
- イベント駆動
2.3.2. ランレベル
ランレベルはLinuxシステムの動作モードのこと。
システムのデフォルトのランレベルは/etc/inittabに記載されている。
またこのファイルで起動する際のランレベルも設定できる。
| ランレベル | RedHat系 | Debian系 | 
|---|---|---|
| 0 | 停止 | 停止 | 
| 1 | シングルユーザモード | シングルユーザモード | 
| 2 | マルチユーザモード(テキストログイン、NFSサーバは停止) | マルチユーザモード | 
| 3 | マルチユーザモード(テキストログイン) | マルチユーザモード | 
| 4 | 未使用 | マルチユーザモード | 
| 5 | マルチユーザーモード(グラフィカルログイン) | マルチユーザモード | 
| 6 | 再起動 | 再起動 | 
| S or s | シングルユーザーモード | シングルユーザモード | 
runlevelコマンド
現在のランレベルの確認を行うコマンド。
runlevel表示は<以前のランレベル> <現在のランレベル>で表示される。
init/telinitコマンド
ランレベルの変更を行うコマンドで実行にはroot権限が必要。
init 1
telinit 1wallコマンド
wallコマンドはログインしているユーザー全員の端末画面に一斉にメッセージを送信するコマンド。再起動や停止を行う際にシステム利用者に通知するために使用する。
wall [ -a ] [ -g Group ] <メッセージ>2.3.3. 起動スクリプトのサービス管理
ランレベルごとに起動するサービスは異なり、確認は/etc/rcN,d(Nは数字)で確認できる。
例えば/etc/rc3.dではランレベル3の時に起動するスクリプトを確認できる。