HCRM博客

如何理解和使用CentOS中的inittab文件?

CentOS inittab 文件详解

一、inittab 文件

如何理解和使用CentOS中的inittab文件?-图1
(图片来源网络,侵权删除)

在 Linux 系统中,/etc/inittab 是初始化(init)进程使用的配置文件之一,该文件定义了系统默认的运行级别以及各运行级别需要启动或停止的服务,虽然现代的 CentOS 版本更多使用 systemd 而不是 init 系统,但理解inittab 文件仍然对深入了解系统的启动过程非常有帮助。

二、inittab 文件内容解析

文件格式

/etc/inittab 文件中的每一行通常由四个字段组成,字段之间用冒号(:)分隔:

id:条目的唯一标识符,通常为一到四个字符。

runlevels:指定该条目在哪些运行级别生效,如果为空,表示在所有运行级别生效。

action:定义 init 对相应条目执行的操作,例如等待(wait)、重启(respawn)、执行一次(once)等。

如何理解和使用CentOS中的inittab文件?-图2
(图片来源网络,侵权删除)

process:要执行的命令或脚本。

示例分析

以下是一个典型的/etc/inittab 文件内容及其解释:

inittab is only used by upstart
inittab is no longer used when using systemd
ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM
System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown t3 r now
pf::powerfail:/sbin/shutdown f h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown c "Power Restored; Shutdown Cancelled"
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
x:5:respawn:/etc/X11/prefdm nodaemon

2.1 id:3:initdefault:

id:id 用于唯一标识该配置项,这里设置为3。

runlevels:3 表示运行级别。

action:initdefault 表示这是系统的默认运行级别。

process: 无具体命令。

2.2 si::sysinit:/etc/rc.d/rc.sysinit

id:si 表示系统初始化。

runlevels::: 表示所有运行级别。

action:sysinit 表示执行系统初始化命令。

process:/etc/rc.d/rc.sysinit 是实际执行的脚本,负责系统初始化工作。

2.3 l0:0:wait:/etc/rc.d/rc 0

id:l0 表示标签。

runlevels:0 表示运行级别0。

action:wait 表示等待该命令执行完毕。

process:/etc/rc.d/rc 0 是运行级别0要执行的脚本。

2.4 ca::ctrlaltdel:/sbin/shutdown t3 r now

id:ca 表示捕获特定的按键组合。

runlevels::: 表示所有运行级别。

action:ctrlaltdel 表示按下 Ctrl+Alt+Delete 时执行。

process:/sbin/shutdown t3 r now 是执行的命令,三秒后重启系统。

2.5 pf::powerfail:/sbin/shutdown f h +2 "Power Failure; System Shutting Down"

id:pf 表示电源故障。

runlevels::: 表示所有运行级别。

action:powerfail 表示电源故障时执行。

process:/sbin/shutdown f h +2 "Power Failure; System Shutting Down" 是执行的命令,两分钟后关闭系统。

2.6 PR:12345:powerokwait:/sbin/shutdown c "Power Restored; Shutdown Cancelled"

id:pr 表示电源恢复。

runlevels:12345 表示特定的运行级别。

action:powerokwait 表示电源恢复时取消关机。

process:/sbin/shutdown c "Power Restored; Shutdown Cancelled" 是执行的命令,取消关机操作。

2.7 1:2345:respawn:/sbin/mingetty tty1

id:1 表示标签。

runlevels:2345 表示特定的运行级别。

action:respawn 表示重新启动进程。

process:/sbin/mingetty tty1 是实际执行的命令,管理虚拟终端。

2.8 x:5:respawn:/etc/X11/prefdm nodaemon

id:x 表示图形界面。

runlevels:5 表示运行级别5。

action:respawn 表示重新启动进程。

process:/etc/X11/prefdm nodaemon 是实际执行的命令,启动图形界面。

三、运行级别说明

CentOS支持多个运行级别,每个运行级别对应不同的系统状态:

0:停机(不要将默认运行级别设置为0)。

1:单用户模式,用于维护,禁止远程登录。

2:多用户模式,没有NFS。

3:完全多用户模式,有NFS,命令行界面。

4:未使用,用户自定义。

5:多用户模式,有图形界面。

6:重新启动(不要将默认运行级别设置为6)。

四、设置默认运行级别

在 CentOS 7 及以后的版本中,默认不再使用 inittab 文件来管理系统运行级别,而是使用 systemd,以下是如何使用 systemd 设置默认运行级别:

查看当前默认目标(相当于运行级别)
systemctl getdefault
设置默认目标为 multiuser.target(相当于运行级别3)
sudo systemctl setdefault multiuser.target
设置默认目标为 graphical.target(相当于运行级别5)
sudo systemctl setdefault graphical.target

五、FAQs

Q1:如何更改 CentOS 的默认运行级别?

A1:对于 CentOS 7 及更高版本,可以使用以下命令更改默认运行级别:

sudo systemctl setdefault multiuser.target   # 切换到命令行模式(运行级别3)
sudo systemctl setdefault graphical.target    # 切换到图形界面模式(运行级别5)

对于 CentOS 6 及更早版本,可以编辑/etc/inittab 文件,修改id:3:initdefault: 行的3 为其他运行级别。

Q2:如何在 CentOS 中添加启动服务?

A2:在 CentOS 7 及更高版本中,使用systemctl 命令管理服务:

启用服务(开机自启)
sudo systemctl enable SERVICE_NAME
禁用服务(取消开机自启)
sudo systemctl disable SERVICE_NAME
立即启动服务
sudo systemctl start SERVICE_NAME
立即停止服务
sudo systemctl stop SERVICE_NAME

在 CentOS 6 及更早版本中,可以通过创建符号链接的方式添加启动服务:

创建符号链接到 /etc/rc.d/rc.local 或其他启动脚本中
ln s /path/to/service /etc/rc.d/rc.local

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/10936.html

分享:
扫描分享到社交APP
上一篇
下一篇