kazmax - Linux で自宅サーバー

(CentOS6まで)サービス自動起動の設定

Linuxでは、どのランレベル(runlevel)で、どのサービスを起動させるかを設定することができます。chkconfig コマンドを使います。ここでは、サービスの自動起動の設定について説明します。
※ CentOS 6までの説明です。CentOS 7からはランレベルの概念やサービスの自動起動の設定方法が変わっています。

Last Update : 2015年06月30日

(CentOS6まで)サービス自動起動の設定 項目

  1. サービスの一覧表示と自動起動状態の確認
  2. サービスの自動起動を有効にする
  3. サービスの自動起動を無効にする

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になりました。

サービスの管理 関連記事
Linux 基礎知識 関連記事