10.2.3. chkconfig ユーティリティの使用

chkconfig ユーティリティは、選択したサービスをどのランレベルで起動するかを指定できるコマンドラインツールです。このユーティリティを使用すると、すべての利用可能なサービスと現在の設定を表示することもできます。一覧表示以外で、このコマンドを使用するには、スーパーユーザー権限が必要となる点に注意して下さい。

10.2.3.1. サービスの一覧表示

システムサービス (/etc/rc.d/init.d/ ディレクトリからのサービスおよび xinetd により制御されているサービス) の一覧を表示するには、chkconfig --list と入力するか、追加の引数なしで chkconfig を使用します。これにより、以下の例のような出力が表示されます。
~]# chkconfig --list
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
anamon          0:off   1:off   2:off   3:off   4:off   5:off   6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
avahi-daemon    0:off   1:off   2:off   3:on    4:on    5:on    6:off
... several lines omitted ...
wpa_supplicant  0:off   1:off   2:off   3:off   4:off   5:off   6:off

xinetd based services:
        chargen-dgram:  off
        chargen-stream: off
        cvs:            off
        daytime-dgram:  off
        daytime-stream: off
        discard-dgram:  off
... several lines omitted ...
        time-stream:    off
各行にはサービス名と 7 つの番号が付いたランレベルそれぞれの状態 (オン/オフ) が表示されています。例えば、上記の一覧では NetworkManager は、ランレベル 2、3、4、5 で有効であり、abrtd はランレベル 3 と 5 で実行されます。xinetd ベースのサービスは最後に表示され、状態は on/off のいずれかです。
選択したサービスのみの現在の設定を表示するには、chkconfig --list の後にサービス名を指定したコマンドを使用します:
chkconfig --list service_name
例えば、sshd サービスの現在の設定を表示するには、以下のように入力します。
~]# chkconfig --list sshd
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
このコマンドを使って xinetd によって管理されているサービスの状態を表示することもできます。この場合、出力には単にサービスが有効か無効かが表示されます。
~]# chkconfig --list rsync
rsync           off

10.2.3.2. サービスの有効化

ランレベル 2、3、4、5 でサービスを有効にするには root でシェルプロンプトに以下を入力します。
chkconfig service_name on
例えば、これら 4 つのランレベルで httpd サービスを有効にするには、以下を入力します。
~]# chkconfig httpd on
特定のランレベルのみでサービスを有効にしたい場合は、サービスを実行する各ランレベルを示す 0 から 6 までの数字を --level のオプションの後に付けて追加します。
chkconfig service_name on --level runlevels
例えば abrtd をランレベル 3 と 5 で有効にするには、以下のように入力します。
~]# chkconfig abrtd on --level 35
次回にこれらのランレベルのいずれかに入った時に、該当するサービスが起動します。サービスを即時に起動する必要がある場合は、「サービスの開始」 で説明したように service コマンドを使用します。
xinetd により管理されているサービスはサポートされていないため、これと --level オプションを合わせて使用 しない でください。例えば、rsync サービスを有効にするには、以下のように入力します。
~]# chkconfig rsync on
xinetd デーモンが実行中の場合、手動でデーモンを再起動しなくても、サービスは即座に有効になります。

10.2.3.3. サービスの無効化

ランレベル 2、3、4、5 でサービスを無効にするには root でシェルプロンプトに以下を入力します。
chkconfig service_name off
例えば、これら 4 つのランレベルで httpd サービスを無効にするには、以下を入力します。
~]# chkconfig httpd off
特定のランレベルのみでサービスを無効にしたい場合は、サービスを実行 しない 各ランレベルを示す 0 から 6 までの数字を --level のオプションの後に付けて追加します。
chkconfig service_name off --level runlevels
例えば abrtd をランレベル 2 と 4 で無効にするには、以下のように入力します。
~]# chkconfig abrtd off --level 24
次回にこれらのランレベルのいずれかに入った時に、該当するサービスが停止します。サービスを即時に停止する必要がある場合は、「サービスの停止」 で説明したように service コマンドを使用します。
xinetd により管理されているサービスはサポートされていないため、これと --level オプションを合わせて使用 しない でください。例えば、rsync サービスを無効にするには、以下のように入力します。
~]# chkconfig rsync off
xinetd デーモンが実行中の場合、手動でデーモンを再起動しなくても、サービスは即座に無効になります。