
- ランレベルとサービス
- 5章では起動時に /etc/inittab の設定にしたがって init コマンドが実行され, ランレベルという起動するモードがあることを説明しました. ここではそのランレベル毎に起動されるサービスについて確認します.
起動時に実行される処理はたくさんありますがそのほとんどはシェルスクリプトによって制御されています. ランレベルに応じて実行されるシェルスクリプトは "/etc/rc.d" ディレクトリにランレベル毎にディレクトリに分かれて用意されています.
[student]$ ls /etc/rc.d init.d rc.local rc0.d rc2.d rc4.d rc6.d rc rc.sysinit rc1.d rc3.d rc5.d [student]$各ディレクトリにはサービスを起動するためのシェルスクリプトが用意されています.
[student]$ ls /etc/rc.d/rc3.d/ K14alsasound K92ipchains S12syslog S35identd S75keytable S90xfs K20nfs K99hotplug S16apmd S40atd S80postfix S92canna K35medusa S05kudzu S18autofs S40crond S85gpm S99local K45arpwatch S08iptables S20pcmcia S56rawdevices S90FreeWnn S99xinitrc K45irda S10network S20random S56xinetd S90kondara K83ypbind S11portmap S25netfs S60lpd S90rskkserv [studnet]$各ディレクトリにあるファイルは少しず変わっていて, ファイル名が K で始まっているものはそのランレベルでは実行されず, S で始まっているものだけが 実行されるようになってます.
実際にはこれらは /etc/init.d にあるシェルスクリプトへのリンクになっています(ファイル名だけが存在し, ファイルの実態は /etc/init.d に存在します).
- サービスの起動
- ランレベルとは Linux を動作させる環境に応じて番号が設定されており,その環境で動かすアプリケーションなどを設定できます.
ランレベルの分類は次のようになっています.
ランレベル モード 説明 0 システムの停止モード システムを停止するときに指定 1 シングルユーザモード システムを1人で占有するときに指定 2 マルチユーザモード
(ネットワーク機能なし)システムを複数ユーザが利用するときに指定 3 マルチユーザモード システムを複数ユーザが利用するときに指定.
ログインはテキストベース4 カスタムモード 起動するサービスを自由に設定できる 5 マルチユーザモード システムを複数ユーザが利用するときに指定.
ログインは GUI ベース6 システムの再起動モード システムをリブートするときに指定
通常起動時にはランレベル 3 または 5 が使われます.
- ランレベルによって起動されるサービスを確認するには chkconfig コマンドを使います.--list オプションの後にサービス名を指定するとそのサービスのランレベル毎に起動されるかを確認できます. サービス名を指定しないと用意されているサービス全ての設定状況を確認できます.
[student]$ /sbin/chkconfig --list network network 0:off 1:off 2:on 3:on 4:on 5:on 6:off [student]$ /sbin/chkconfig --list atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off gpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off lpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off xfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ldap 0:off 1:off 2:off 3:off 4:off 5:off 6:off xinitrc 0:off 1:off 2:on 3:on 4:on 5:on 6:off rskkserv 0:off 1:off 2:off 3:on 4:on 5:on 6:off canna 0:off 1:off 2:off 3:on 4:on 5:on 6:off crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off httpd 0:off 1:off 2:off 3:on 4:on 5:on 6:off kudzu 0:off 1:off 2:off 3:on 4:on 5:on 6:off netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off rusersd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rawdevices 0:off 1:off 2:off 3:on 4:on 5:on 6:off autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off network 0:off 1:off 2:on 3:on 4:on 5:on 6:off identd 0:off 1:off 2:off 3:on 4:on 5:on 6:off medusa 0:off 1:off 2:off 3:off 4:off 5:off 6:off pcmcia 0:off 1:off 2:on 3:off 4:on 5:off 6:off random 0:off 1:off 2:on 3:on 4:on 5:on 6:off rstatd 0:off 1:off 2:off 3:off 4:off 5:off 6:off rwalld 0:off 1:off 2:off 3:off 4:off 5:off 6:off syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off hotplug 0:off 1:off 2:off 3:off 4:off 5:off 6:off FreeWnn 0:off 1:off 2:on 3:on 4:on 5:on 6:off portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off postfix 0:off 1:off 2:on 3:off 4:on 5:off 6:off keytable 0:off 1:off 2:on 3:on 4:on 5:on 6:off alsasound 0:off 1:off 2:off 3:off 4:off 5:off 6:off xinetd based services: ftp: on auth: off echo: off exec: off tftp: off time: off daytime: off login: off shell: off chargen-udp: off netstat: off telnet: off systat: off daytime-udp: off time-udp: off echo-udp: off chargen: off [studnet]$最後に表示されている xinetd based services はポートを監視して要求がある度に実行されるサービスの設定です.
chkconfig コマンドを利用するとランレベル毎のサービスの実行や停止の設定ができます.
起動時のサービスを停止する場合には --level オプションでランレベルと停止のための引数 off を指定します. 例えば network をランレベル 3 では起動しないようにするには次のようにします.
[root]# /sbin/chkconfig --level 3 network off [root]# /sbin/chkconfig --list network network 0:off 1:off 2:on 3:off 4:on 5:on 6:off [root]#同様に network をランレベル 3 で起動するようにするには次のようにします.
[root]# /sbin/chkconfig --level 3 network on [root]# /sbin/chkconfig --list network network 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root]#