Linux的运行级别及开机启动项

系统运行级别介绍

在Linux中,运行级别(runlevels)是不同系统服务和进程的配置组合,用于定义系统处于特定状态下的运行方式。Linux中的运行级别通常用单个数字标识,每个运行级别对应着一组预定义的系统服务和进程的启动状态。

区别

在传统的SysV初始化系统中,常见的运行级别从0到6,以及特殊的"S"运行级别,每个运行级别的含义如下:

0 - 关机(Halt):系统将被关闭,所有服务停止。
1 - 单用户(Single User):系统处于单用户模式,只有一个root用户登录,用于系统维护和修复。
2 - 多用户,没有NFS(Multi-User without Networking):多用户模式,但不支持网络服务。
3 - 完全多用户模式(Multi-User with Networking):系统完全进入多用户模式,所有服务都启动。
4 - 保留未使用(Unused):保留供用户自定义使用。
5 - 图形界面模式(Graphical Interface):系统进入带图形界面的多用户模式,通常是使用X Window System 。
6 - 重启(Reboot):系统将被重新启动。

系统运行级别示意图:

运行级别 含义
0 关机
1 单用户模式,可以想象为Windows的安全模式,主要用于系统修复
2 不完全的命令行模式,不含NFS服务
3 完全的命令行模式,就是标准字符界面
4 系统保留
5 图形模式
6 重启动

一些相关的命令

  • 系统运行级别
runlevel
  • 系统默认允许级别
vi  /etc/inittab
id=3:initdefault  #系统开机后直接进入哪个运行级别

新的变化

在较新的Linux发行版中,特别是使用systemd作为初始化系统的发行版,运行级别的概念已经发生了变化。systemd引入了一种称为"目标"(targets)的概念,取代了传统SysV初始化系统中的运行级别。目标是一组单元(units)的集合,其中每个单元代表一个系统服务、进程或其他资源。

在传统的SysV初始化系统中,运行级别由数字标识,并且每个运行级别都预定义了一组要启动或停止的服务。但是,systemd中的目标是更灵活和动态的,它不再使用单个数字来表示状态,而是使用文本名称来表示不同的目标状态。

以下是Systemd中一些常见的目标:

  1. multi-user.target:类似于传统运行级别3,进入多用户模式(无图形界面)。
  2. graphical.target:类似于传统运行级别5,进入带图形界面的多用户模式。
  3. rescue.target:类似于传统运行级别1,进入单用户救援模式。
  4. emergency.target:用于进入系统的紧急状态,类似于传统运行级别1,但更为严格。

与传统运行级别相比,systemd目标的主要优势在于其灵活性和可配置性。在Systemd中,您可以轻松地创建自定义目标,将所需的服务和单元组合在一起,以满足特定的需求。

一些命令

  • 要查看当前系统的默认目标(类似于传统运行级别5),可以使用以下命令:
systemctl get-default
  • 要切换到不同的目标,可以使用以下命令:
systemctl isolate <目标名称>

开机启动项

  • 开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d

例子:当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在 /etc/init.d 目录下,然后在 /etc/rc.d/rc*.d 文件中建立软链接即可。

 注:此中的 * 代表 0,1,2,3,4,5,6 这七个等级

ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh

此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动;如果是K开头的脚本文件,代表运行级别加载时需要关闭的。

THE END