Linux单用户模式及运行级别

背景

单用户模式是Linux运行级别其中的一种
在不同的初始化系统(init)中略有差异

Linux运行级别runlevel

sysvinit systemd target 备注
0 poweroff.target 关机
1, s, single rescue.target 单用户模式, 类似Windows 的安全模式,主要用于系统修复
2, 4 multi-user.target 用户定义/域特定运行级别。默认等同于 3
3 multi-user.target 多用户,非图形化界面,标准字符界面
5 graphical.target 多用户,图形化界面,图形桌面默认级别
6 reboot.target 重启
emergency emergency.target 紧急shell

切换运行模式

grub 配置进入单用户模式

在grub的cmdline启动参数后面添加 S, s, 1, single其中一个,内核会将该参数传递给init进程处理,在内核中并未有相应的处理函数。

运行模式相关命令

  • 查看系统当前运行级别:
    $ runlevel
  • 切换不同运行级别(init方式):
    #使用init命令,后面x为需要切换的级别
    $ sudo init x
  • 切换不同运行级别(systemd方式):
    # 切换 Target, 关闭前一个 Target 里面所有不属于后一个 Target 的进程 
    sudo systemctl isolate rescue.target
  • 查看启动时的默认 Target
    sudo systemctl get-default
  • 设置启动时的默认 Target
    sudo systemctl set-default multi-user.target

扩展

在Systemd 是 Linux 系统中最新的初始化系统,它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度Systemd 的很多概念来源于苹果 Mac OS 操作系统上的 launchd