7.2. chkconfig によるサービス起動設定

Turbolinux 11 Server の起動時に各ランレベルで開始するサービスを設定するには、chkconfig コマンドやサービス設定ツール(turboservice)を使用します。turboservice については、項7.3 を参照してください。ここでは、chkconfig コマンドの使用方法を解説します。

システム起動時に開始するサービスを確認する

システム起動時に開始するサービスの設定が現在どのように設定されているのかを確認するには、以下のように chkconfig コマンドに --list オプションを付けて実行します。

# chkconfig --list
UpdateCheck     0:off   1:off   2:on    3:on    4:on    5:on    6:off
acpid           0:off   1:off   2:off   3:on    4:off   5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
keytable        0:off   1:off   2:on    3:on    4:on    5:on    6:off
kparam          0:off   1:off   2:off   3:on    4:off   5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
syslog-ng       0:off   1:off   2:on    3:on    4:on    5:on    6:off
udev            0:off   1:off   2:off   3:on    4:off   5:on    6:off
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off

xinetd ベースのサービス:
        amanda:         off
        amandaidx:      off
        amidxtape:      off
        chargen:        off
        chargen-udp:    off
        cups-lpd:       off
        daytime:        off
        daytime-udp:    off
        discard:        off
        discard-udp:    off
        echo:           off
        echo-udp:       off
        eklogin:        off
        ekrb5-telnet:   off
        finger:         off
        gssftp:         off
        imap:           off
        imaps:          off
        ipop2:          off
        ipop3:          off
        klogin:         off
        krb5-telnet:    off
        kshell:         off
        pop3s:          off
        swat:           off
        xproftpd:       off

1 番左の列には、制御スクリプトのファイル名が表示されます。続いてランレベル毎のサービス起動設定が "on" と "off" で出力されます。"xinetd ベースのサービス:" より下に表示されているサービスは、スーパーサーバー xinetd で起動を制御しているサービスです。xinetd については 第20章 で解説します。

サービス制御スクリプトへのシンボリックリンクを追加/削除する

サービス制御スクリプトへのシンボリックリンクを /etc/rcn.d/ ディレクトリに追加するには、--add オプションを使用します。以下は /etc/rcn.d/ ディレクトリに /etc/init.d/sshd へのシンボリックリンクを作成する例です。

# chkconfig --add sshd

chkconfig コマンドは、/etc/init.d/sshd スクリプトに定義されている以下の # chkconfig 行を参照し、シンボリックリンクを作成します。

# chkconfig: 2345 55 25

最初の数字 2345 は、chkconfig --add を実行したときにデフォルトでサービスの起動設定を "on" にするランレベルが指定されています。次の数字 55 は、シンボリックリンクのファイル名に付ける開始(S)のあとの数字を意味します。その次の数字 25 はシンボリックリンクのファイル名に付ける停止(K)のあとの数字を意味します。したがって、chkconfig --add sshd を実行すると、/etc/rc2.d 〜 /etc/rc5.d ディレクトリに以下のシンボリックリンクが作成されます。開始(S)や停止(K)のあとの数字が小さい順にサービスの開始や停止が行われます。

lrwxrwxrwx 1 root root 14 2007-10-30 10:31 S55sshd -> ../init.d/sshd*

chkconfig --list で確認すると、sshd が追加され、ランレベル 2 〜 5 の起動設定が "on" に設定されていることがわかります。

# chkconfig --list | grep sshd
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

これにより、Turbolinux 11 Server の起動時に /etc/rc スクリプトは、SSH サーバーを起動するようになります。

作成されたシンボリックリンクは、--del オプションで削除することができます。

# chkconfig --del sshd

システム起動時に開始/停止するサービスを設定する

Turbolinux 11 Server の起動時に開始/停止するサービスを設定するには、以下の書式で chkconfig コマンドを実行します。

chkconfig [--level <ランレベル>] <サービス名>  <on|off>

例えば、Turbolinux 11 Server の起動時に SSH サーバーを開始するには、次のように chkconfig コマンドを実行します。

# chkconfig sshd on

chkconfig --list で確認すると、ランレベル 2 〜 5 の状態が "on" に設定されていることがわかります。もし、/etc/init.d/sshd へのシンボリックリンクが /etc/rcn.d/ ディレクトリに存在しない場合は、シンボリックリンクを作成し、ランレベル 2 〜 5 の起動設定を "on" に設定します。

# chkconfig --list | grep sshd
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

逆に、Turbolinux 11 Server の起動時に SSH サーバーが開始されないようにするには、次のように実行します。

# chkconfig sshd off

これにより、シンボリックリンクのファイル名は、以下のように修正されます。

lrwxrwxrwx 1 root root 14 Nov  1 09:49 K25sshd -> ../init.d/sshd*

chkconfig --list で確認すると、ランレベル 2 〜 5 の起動設定が "off" に変更されていることが分かります。

# chkconfig --list | grep sshd
httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

なお、ランレベル毎に開始/停止の設定を行いたい場合は、--level オプションを使用します。例えば、ランレベル 3 と 5 のときに SSH サーバーを開始するのであれば、次のように実行します。

# chkconfig --level 35 sshd on