📌  相关文章
📜  Linux 中的运行级别(1)

📅  最后修改于: 2023-12-03 15:17:22.486000             🧑  作者: Mango

Linux 中的运行级别

在 Linux 中,运行级别(Runlevel)指的是操作系统的运行状态,也可以理解为操作系统所处的模式或状态。每个运行级别都对应着一组预定义的系统服务和服务的进程。操作系统启动时会进入默认的运行级别,但用户也可以根据需要切换到指定的运行级别来满足特定的需求。

Linux 中的运行级别类型

Linux 中一般有以下几种运行级别:

  • 运行级别 0:关机状态
  • 运行级别 1:单用户模式,只运行必要的系统服务
  • 运行级别 2:多用户模式,拥有网络连接,但不运行 NFS 服务
  • 运行级别 3:多用户模式,拥有完全的网络连接
  • 运行级别 4:保留,未使用
  • 运行级别 5:多用户模式,带有 X 界面
  • 运行级别 6:重启系统
查看当前的运行级别

我们可以使用 runlevel 命令查看当前的运行级别。

$ runlevel
N 5

其中 N 表示之前的运行级别,5 表示当前的运行级别。

切换运行级别

我们可以使用 init 命令来切换运行级别,例如切换到运行级别 3:

$ sudo init 3

切换后,系统会重新加载相应的服务和进程使得操作系统进入该运行级别下的状态。

自定义运行级别

除了上述预定义的运行级别,我们还可以自定义运行级别。自定义运行级别需要以下几步:

  1. 复制一个已有的运行级别,例如复制 runlevel 5

    sudo cp /etc/inittab /etc/inittab.bak
    sudo cp /etc/rc.d/rc5.d /etc/rc.d/rc6.d -r
    
  2. 修改 /etc/inittab 文件,增加一个新的 id 行和一个新的运行级别行:

    # 新的 id 行,例如 "id:7:initdefault:"
    id:7:initdefault:
    
    # 新的运行级别行,例如 "7:myrunlevel:/etc/init.d/myrunlevel.sh"
    7:myrunlevel:/etc/init.d/myrunlevel.sh
    

    7 表示新的运行级别,myrunlevel 是自定义的服务名,/etc/init.d/myrunlevel.sh 是要执行的命令脚本。

  3. 编写命令脚本 /etc/init.d/myrunlevel.sh

    #!/bin/bash
    
    # 启动服务或执行其他命令,例如:
    /etc/init.d/apache2 start
    
  4. 让命令脚本具有可执行权限:

    sudo chmod +x /etc/init.d/myrunlevel.sh
    
  5. 重启系统或切换到新的运行级别:

    sudo init 7
    

    切换到自定义的运行级别后,操作系统会执行 /etc/init.d/myrunlevel.sh 中的命令。

总结

运行级别是 Linux 操作系统启动后进入不同状态的一种方式。通过切换运行级别,我们可以方便地控制和管理操作系统运行时的服务和进程,以满足特定的需求。同时,我们还可以自定义运行级别,以适应特定的应用场景。