linux 运行级别和启动脚本

发布时间 2023-08-07 20:58:01作者: 云淡#风清

在Linux操作系统中,运行级别(Runlevel)是一个用于描述系统运行状态的概念,而启动脚本(Startup Script)则是用来控制系统在不同运行级别下启动和停止服务和守护进程的脚本。

  1. 运行级别: 运行级别定义了系统的不同工作状态,每个运行级别都对应着一组特定的服务和守护进程的启动状态。在传统的Unix和Linux系统中,有七个标准的运行级别,用数字0到6来表示:

    • 0:关机状态
    • 1:单用户模式,用于系统维护
    • 2:多用户模式,没有网络支持
    • 3:多用户模式,具有网络支持,通常是文本模式
    • 4:未使用
    • 5:多用户模式,具有网络支持,通常是图形模式
    • 6:系统重启
  2. 启动脚本: 启动脚本是用来在不同运行级别下控制服务和守护进程启动和停止的脚本。在传统的SysVinit系统中,启动脚本通常存储在/etc/init.d目录下,每个脚本都对应着一个特定的服务。这些脚本包含了一系列命令,如启动、停止、重启服务等。

    在现代的Linux发行版中,使用Systemd作为初始化系统,取代了传统的SysVinit。在Systemd中,每个服务和守护进程都由一个单元文件(Unit File)来管理,而不再需要独立的启动脚本。这些单元文件定义了服务的属性、依赖关系和启动行为,存储在/etc/systemd/system目录下。

  3. 运行级别和系统初始化: 在传统的Unix系统中,系统在启动过程中会进入不同的运行级别,从而决定了哪些服务和守护进程会被启动。例如,运行级别5通常表示图形界面模式,而运行级别3表示文本模式下的多用户模式。运行级别的切换是通过执行特定的初始化脚本来实现的,这些脚本通常位于/etc/rcX.d目录中,其中X表示运行级别的数字。

  4. Systemd中的目标(Target): 在现代的Linux发行版中,Systemd引入了目标(Target)的概念来取代传统的运行级别。每个目标代表着一组服务和守护进程的状态。Systemd使用单元文件(Unit File)来定义每个目标下要启动的服务。例如,multi-user.target表示多用户模式,graphical.target表示图形界面模式。

  5. Systemd服务管理命令: 使用Systemd时,可以使用以下命令来管理服务和守护进程:

启动服务:systemctl start service_name

停止服务:systemctl stop service_name

重启服务:systemctl restart service_name

查看服务状态:systemctl status service_name

启用自启动:systemctl enable service_name

禁用自启动:systemctl disable service_name

  1. 传统SysVinit启动脚本: 在使用传统的SysVinit初始化系统时,启动脚本通常位于/etc/init.d目录下。这些脚本可以手动执行来启动、停止或重启服务。此外,可以使用update-rc.d等命令来管理运行级别和启动脚本。