(CentOS6まで)サービス自動起動の設定
Linuxでは、どのランレベル(runlevel)で、どのサービスを起動させるかを設定することができます。chkconfig コマンドを使います。ここでは、サービスの自動起動の設定について説明します。
※ CentOS 6までの説明です。CentOS 7からはランレベルの概念やサービスの自動起動の設定方法が変わっています。
Last Update : 2015年06月30日
(CentOS6まで)サービス自動起動の設定 項目
1. サービスの一覧表示と自動起動状態の確認
サービスの一覧を表示するには、「chkconfig」コマンドを使います。「chkconfig」コマンドを使うと、サービスの一覧表示だけでなく、サービスの登録、削除、どのランレベルで起動させるかの設定ができます。また、独自で作成したプログラムも一定の手順をふめばサービスとして登録することが可能です。
chkconfig でサービスの一覧を確認する 書式
chkconfig --list [サービス名]
chkconfig で「--list」オプションを使うとサービスの一覧を確認することができます。また、各サービスの自動起動の設定も確認することができます。サービス名を指定するとそのサービスだけの情報が表示されます。
例)chkconfig でサービスの一覧を確認する
# chkconfig --list NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off
一番左側の文字列がサービス名、右側の数字とon/offで各ランレベルにおける自動起動のon/offを表しています。
上記の例の場合だと、NetworkManager は、サービスとして登録されていて、
- ランレベル0で、停止
- ランレベル1で、停止
- ランレベル2で、起動
- ランレベル3で、起動
- ランレベル4で、起動
- ランレベル5で、起動
- ランレベル6で、停止
という意味になります。
2. サービスの自動起動を有効にする
サービスの自動起動を有効にするには、以下のようにします。
サービスの自動起動を有効にする 書式
chkconfig [--level levels] サービス名 on
--level levels は、省略可能です。省略した場合は、そのサービスの起動/停止スクリプトに設定されている内容で設定されます。
例)サービスの自動起動を有効にする
levelsは、複数指定することが可能です。
chkconfig http on ← サービスの起動/停止スクリプトの初期値で自動起動を設定する場合
chkconfig --level 3 http on ← ランレベル3でサービスを自動起動させる場合
chkconfig --level 2345 http on ← 複数のランレベルを指定する場合は、こうやって書く。
設定したサービスの内容を確認してみます。
# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3. サービスの自動起動を無効にする
サービスの自動起動を無効にするには、以下のようにします。
サービスの自動起動を無効にする 書式
chkconfig [--level levels] サービス名 off
levelsを指定しなければ、全てのランレベルで対象のサービスの自動起動は無効になります。
levelsを指定すると、指定したランレベルの自動起動設定だけが無効になります。
例)サービスの自動起動を無効にする
# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off # chkconfig --level 3 httpd off ← ランレベル3でoffにする # chkconfig --list httpd httpd 0:off 1:off 2:on 3:off 4:on 5:on 6:off ← ランレベル3でoffになった
ランレベルを指定しない場合は、全てoffになります。
# chkconfig httpd off ← ランレベルの指定をしないでoff # chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ← 全てoff
全てのランレベルでサービスの自動起動がoffになりました。