CentOS Inittab 文件详解
一、背景介绍
在 CentOS 系统中,/etc/inittab
文件是一个关键的系统配置文件,用于定义系统的运行级别和启动行为,该文件配置了系统在不同运行级别下应该执行的任务和进程,理解并正确配置inittab
文件对于系统管理员来说至关重要,本文将详细解析inittab
文件的结构和各项配置,提供全面的信息和示例。
二、inittab 文件
/etc/inittab
文件由多个字段组成,每个字段之间用冒号(:)分隔,这些字段包括:
id: 标识符,一般为两位数字或字母。
runlevels: 运行级别,可以指定多个,若为空则表示从0到6各个运行级别都执行。
action: 指定运行状态,如 initdefault, sysinit, wait, respawn 等。
process: 要执行的命令或脚本。
三、文件格式与字段解释
id:5:initdefault:
id:5
标识符,表示默认运行级别。
runlevels:5
系统默认启动的运行级别。
action:initdefault
指定这是系统的默认运行级别。
process: 无 该行不需要指定具体进程。
2. si::sysinit:/etc/rc.d/rc.sysinit
id:si
标识符,表示以单用户模式启动时进行系统初始化。
runlevels::
空值,表示所有运行级别都执行。
action:sysinit
系统初始化动作。
process:/etc/rc.d/rc.sysinit
系统初始化脚本。
3. l0:0:wait:/etc/rc.d/rc 0
id:l0
标识符。
runlevels:0
运行级别0。
action:wait
等待进程完成。
process:/etc/rc.d/rc 0
运行级别0的初始化脚本。
4. l5:5:wait:/etc/rc.d/rc 5
id:l5
标识符。
runlevels:5
运行级别5。
action:wait
等待进程完成。
process:/etc/rc.d/rc 5
运行级别5的初始化脚本。
5. l3:3:wait:/etc/rc.d/rc 3
id:l3
标识符。
runlevels:3
运行级别3。
action:wait
等待进程完成。
process:/etc/rc.d/rc 3
运行级别3的初始化脚本。
6. ca::ctrlaltdel:/sbin/shutdown t3 r now
id:ca
标识符。
runlevels::
空值,表示所有运行级别都执行。
action:ctrlaltdel
捕捉 Ctrl+Alt+Del 组合键。
process:/sbin/shutdown t3 r now
重启命令。
7. pr:12345:powerokwait:/sbin/shutdown c "Power Restored; Shutdown Cancelled"
id:pr
标识符。
runlevels:12345
运行级别2、3、4、5。
action:powerokwait
电源恢复后的等待操作。
process:/sbin/shutdown c "Power Restored; Shutdown Cancelled"
取消关机命令。
8. 1:2345:respawn:/sbin/mingetty tty1
id:1
标识符。
runlevels:2345
运行级别2、3、4、5。
action:respawn
进程结束后重新启动。
process:/sbin/mingetty tty1
打开虚拟终端。
9. x:5:respawn:/etc/X11/prefdm nodAEmon
id:x
标识符。
runlevels:5
运行级别5。
action:respawn
进程结束后重新启动。
process:/etc/X11/prefdm nodaemon
图形界面登录管理器。
四、运行级别详解
CentOS 支持多种运行级别,每个运行级别对应不同的系统状态:
0: 停机(关闭系统)。
1: 单用户模式,常用于维护和故障排除。
2: 多用户模式,无网络服务。
3: 完全多用户模式,带网络服务但无图形界面。
4: 未分配(用户自定义)。
5: 完全多用户模式,带图形界面。
6: 重启系统。
五、相关命令与工具
1. systemctl setdefault
用于设置默认目标(相当于运行级别)。
systemctl setdefault multiuser.target # 设置为运行级别3 systemctl setdefault graphical.target # 设置为运行级别5
dmesg
查看系统启动信息和硬件状态:
dmesg | grep eth0 # 查看网络接口信息 dmesg | grep sda # 查看硬盘信息
chkconfig
管理服务的运行级别:
chkconfig list # 查看所有服务的状态 chkconfig level 3 httpd on # 设置 httpd 在运行级别3启动
六、常见问题与解答(FAQs)
Q1: /etc/inittab 文件在 CentOS 7 中还存在吗?为什么?
A1: 在 CentOS 7 及更高版本中,/etc/inittab
文件仍然存在,但不再用于设置运行级别,CentOS 7 使用 systemd 作为其初始化系统,所有的启动和运行级别管理都通过 systemd 进行,修改/etc/inittab
文件不会影响系统的启动行为,相反,应使用systemctl
命令来管理系统和服务。
Q2: 如果我希望 CentOS 7 开机默认进入字符界面而不是图形界面,应该怎么做?
A2: 你可以通过设置 systemd 的默认目标来实现这一点,你需要将默认目标设置为多用户目标(相当于运行级别3),这会引导系统进入字符界面,可以使用以下命令:
systemctl setdefault multiuser.target
重启系统使更改生效:
reboot
这样,系统将在下次启动时默认进入字符界面,如果你需要切换回图形界面,可以使用相同的命令,但将目标更改为图形目标:
systemctl setdefault graphical.target