linuxの起動プロセスがようやく理解出来た気がする。
linuxには幾つかの処理モードがあって、これをランレベル(run level)と呼ぶ。実際に利用されるのは6つくらい。
ちょっと英語で気取ってみました。ランレベルはinitっていうbinが管理してて、例えばシステム起動時画面をよく見ていると「INIT: ランレベルを3に移行しています」とかいうメッセージが英語で出てます。
ランレベル0、6はshutdownやrebootする時に移行するモード。起動しているプロセスを停止する。4は普通使われません。
ランレベル3というのは、テキストでlinuxが起動するモード。5というのはグラフィカルな、つまりいきなりX-Windowからログインするモード。普段は3か5から起動するようにしておけばOK。
普段どのランレベルから起動するのか、また各モード起動時にはどんなプロセスを起動するのか、を全体的にまとめてある設定ファイルがこれ。
/etc/inittab
inittabを見ると、
/etc/rc3.d/ を ls -F してみると、
このディレクトリは特別な意味を持っていて、該当するランレベルに移行した際、これらのリンク先が呼び出されます。
S(or K) + number + bin
という名前については、頭文字のSは起動(start)、Kは終了(kill)を意味し、続く数字は起動する優先順位を示しています。
これらシンボリックリンクのリンク先は/etc/init.dのbinたちとなっています。
んで、最初に示した表みたいにランレベルの使い分けがちゃんとされているかっていうとそうでもないです。Xを入れたらランレベル2なのに自動でX立ち上がるようになってたり。
使い分け自体は自分でするものらしい。デフォルトの起動レベルを3にして、rc3.dのシンボリックリンクをKに変えたりしてちまちまいじっています。
現在のランレベルを知りたいときは、runlevelコマンドを使います。
また一時的にランレベルを変更するのであれば、root権限でtelinitコマンド。
この記事のタイトルはこのコマンドからとったりした。
linuxには幾つかの処理モードがあって、これをランレベル(run level)と呼ぶ。実際に利用されるのは6つくらい。
lev. | details |
0 | shutdown mode |
1 | single user mode (root mode) |
2 | multi user mode without Network |
3 | multi user mode ( Text login ) |
4 | N/A |
5 | multi user mode ( Graphical login ) |
6 | reboot mode |
ちょっと英語で気取ってみました。ランレベルはinitっていうbinが管理してて、例えばシステム起動時画面をよく見ていると「INIT: ランレベルを3に移行しています」とかいうメッセージが英語で出てます。
ランレベル0、6はshutdownやrebootする時に移行するモード。起動しているプロセスを停止する。4は普通使われません。
ランレベル3というのは、テキストでlinuxが起動するモード。5というのはグラフィカルな、つまりいきなりX-Windowからログインするモード。普段は3か5から起動するようにしておけばOK。
普段どのランレベルから起動するのか、また各モード起動時にはどんなプロセスを起動するのか、を全体的にまとめてある設定ファイルがこれ。
/etc/inittab
inittabを見ると、
id:3:initdefault:
l3:3:wait:/etc/rc3.d/
/etc/rc3.d/ を ls -F してみると、
# ls -F
K20inetd@ S10sysklogd@ S20makedev@ S89cron@
K20ssh@ S11klogd@ S20xinetd@ S99rmnologin@
このディレクトリは特別な意味を持っていて、該当するランレベルに移行した際、これらのリンク先が呼び出されます。
S(or K) + number + bin
という名前については、頭文字のSは起動(start)、Kは終了(kill)を意味し、続く数字は起動する優先順位を示しています。
これらシンボリックリンクのリンク先は/etc/init.dのbinたちとなっています。
んで、最初に示した表みたいにランレベルの使い分けがちゃんとされているかっていうとそうでもないです。Xを入れたらランレベル2なのに自動でX立ち上がるようになってたり。
使い分け自体は自分でするものらしい。デフォルトの起動レベルを3にして、rc3.dのシンボリックリンクをKに変えたりしてちまちまいじっています。
現在のランレベルを知りたいときは、runlevelコマンドを使います。
# /sbin/runlevel
N 3
また一時的にランレベルを変更するのであれば、root権限でtelinitコマンド。
# telinit 5
この記事のタイトルはこのコマンドからとったりした。
スポンサーサイト
| ホーム |