本文へトップページ第6章 プロセスとデーモン>6.3節 サービスの実行
前のページへ 次のページへ
 

6.3 サービスの実行

ランレベルとサービス

 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]#命令終わり				
ターミナルウィンドウでの実行例終わり





本文先頭へトップページ第6章 プロセスとデーモン>6.3節  サービスの実行
前のページへ 次のページへ