在 CentOS 6.x 中,/etc/inittab 配置文件只能用来设置系统的默认运行级别。
那么,什么是运行级别呢?其实 Linux 是通过运行级别来确定系统启动时到底启动哪些服务的。Linux 默认有 7 个运行级别,具体如表 1 所示。
运行级别 | 含 义 |
---|---|
0 | 关机 |
1 | 单用户模式,可以想象为 Windows 的安全模式,主要用于系统修复 |
2 | 不完全的命令行模式,不含 NFS 服务 |
3 | 完全的命令行模式,就是标准字符界面 |
4 | 系统保留 |
5 | 图形模式 |
6 | 重新启动 |
在 Linux 系统中可以使用 runlevel 命令来查看系统的运行级别,命令如下:
[root@localhost ~]# runlevel
N 3
\#N代表在进入这个级别前,上一个级别是什么;3代表当前级别
在这个命令的结果中,"N 3"中的N代表在进入这个级别前,上一个级别是什么;3 代表当前级别。"N" 就是 None 的意思,也就是说,系统是开机直接进入 3 运行级别的,没有上一个运行级别。那如果从图形界面切换到字符界面,再查看运行级别,就应该是这样的:
[root@localhost ~]# runlevel
5 3
\#代表由5级别进入3级别
那么,可以手工改变当前的运行级别吗?当然可以了,只需使用 init 命令(注意这不是 init 进程)即可,命令如下:
[root@localhost ~]# init 5
\#进入图形界面,当然要已经安装了图形界面才可以
[root@localhost ~]# init 0
\#关机
[root@localhost ~]# init 6
\#重新启动
不过要注意,使用 init 命令关机和重启并不是太安全,容易造成数据丟失。所以推荐大家使用 shutdown 命令进行关机和重启。
系统默认运行级别
知道了运行级别的作用,我们回到系统启动过程中来。/etc/inittab 配置文件的功能就是确定系统的默认运行级别,也就是系统开机后会进入那个运行级别。此文件的内容如下:
[root@localhost ~]#vim /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
\#系统会先调用/etc/init/rcS.conf
\# Individual runlevels are started by /etc/init/rc.conf
\#在调用/etc/init/rc.conf,在不同的运行级别启动不同的服务
\# Ctrl-Alt-Delete is handled by/etc/init/control-alt-delete.conf
\#通过这个配置文件判断Ctri+Alt+Delete热启动键是否可用
\# 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)
\#很眼熟吧,就是刚刚的 0~6运行级别的说明
id:3:initdefault:
\#这就是系统的默认运行级别,也就是系统开机后直接进入哪个运行级别
注意,这里的默认运行级别只能写 3 或 5,其他的级别要么是关机重启,要么是保留或单用户,都不能作为系统默认运行级别。