Linux サービスの自動起動とランレベル(chkconfig)

サービスの自動起動の設定とランレベルのサンプルです。
(確認環境:CentOS 6.8)

目次

サンプル サービスの自動起動とランレベル
  サービスの自動起動の設定を確認(chkconfig --list サービス)
サービスの自動起動の設定を行う(chkconfig サービス on)
chkconfig httpd onでメッセージが出るとき
  デフォルトのランレベルを指定している箇所

サービスの自動起動とランレベル

  • ランレベルごとにhttpd等のサービスの自動起動の設定ができます。
  • ランレベルとは、OSの状態のことで0から6まであります。
  • ランレベルの内容はOSによって異なります。
  • CentOS(redhat系OS)のランレベルは以下です。
ランレベル 状態
0 システムが停止になる状態
1 シングルユーザーモード
rootによるログインができない等の緊急時に使用します。
rootと同じ権限を持ちます。
2 未使用。ユーザーが定義可能です。
3 通常の操作で使用されます。
マルチユーザーモードでテキストログインです。
4 未使用。ユーザーが定義可能です。
5 通常の操作で使用されます。
マルチユーザーモードでGUIログインです。(X ベースのログイン画面)
6 システムが再起動になる状態

 

サービスの自動起動の設定を確認(chkconfig --list サービス)

CentOS6のサービスの自動起動の設定の確認は、chkconfigコマンドを使用します。

[root@localhost test]# chkconfig --list httpd
httpd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@localhost test]# service httpd status
httpd は停止しています
[root@localhost test]# 

1行目は、chkconfigコマンドでhttpd(Apache)サービスの自動起動の設定を確認しています。
2行目の左端の英字名(httpd)がサービス名です。
数値の0から6がランレベルで、onが自動起動する、offが自動起動しないという意味です。
全てoffで自動起動の設定はされていません。
3行目は、httpdの状態を確認しています。
4行目は、httpdは停止していると返されています。

chkconfig --list の場合、サービスの自動起動の設定の一覧が表示されます。

 

サービスの自動起動の設定を行う(chkconfig サービス on)

[root@localhost test]# chkconfig httpd on
[root@localhost test]# chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@localhost test]# 

1行目は、chkconfig httpd onで自動起動の設定を行っています。
2行目で自動起動の設定を確認すると、2,3,4,5がonになっています。

サーバーを再起動するとhttpdは自動起動します。

 

chkconfig httpd onでメッセージが出るとき

サービス httpd は chkconfig をサポートしますが実行レベルで参照されていません
(run 'chkconfig --add httpd')

サービスがchkconfigに登録されていません。

chkconfig --add httpdで登録できますが、

chkconfig --add httpdなしでchkconfig httpd onを行っても自動起動の設定はできます。

[root@localhost test]# chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@localhost test]# chkconfig --del httpd
[root@localhost test]# chkconfig --list httpd
サービス httpd は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add httpd')
[root@localhost test]# 
[root@localhost test]# chkconfig --add httpd
[root@localhost test]# chkconfig --list httpd
httpd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off
[root@localhost test]# chkconfig httpd on
[root@localhost test]# chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
[root@localhost test]# 

1行目は、httpdが設定されている状態です。
3行目は、chkconfig --del httpdで設定を外しています。
4行目は、chkconfig --list httpdを行いますがhttpdの設定は表示されません。
7行目は、chkconfig --add httpdで設定しています。
8行目は、設定直後のhttpの状態で全てoffになっています。

 

httpdサービス実行中にchkconfig --del httpdを行った場合

httpdサービスは実行中のままです。

[root@localhost test]# chkconfig --del httpd
[root@localhost test]# chkconfig --list httpd
サービス httpd は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add httpd')
[root@localhost test]# service httpd status
httpd (pid  2253) を実行中...
[root@localhost test]# 

1行目は、設定を削除しています。
2行目は、設定を確認しますが参照できません。
3行目は、httpdサービスを確認しています。実行中です。

 

デフォルトのランレベルを指定している箇所

/etc/inittabファイルにデフォルトのランレベルを指定している箇所があります。

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

26行目の数値がランレベルで、ランレベルは5になっています。

関連の記事

Linux bashでログイン時に読み込まれるファイル
Linux rcスクリプトとランレベル毎のシンボリックリンク

△上に戻る