systemd 与 runlevel

前言

截至 2020.11.17,SystemD 早已战胜 upstart 成为 SystemV 的接任者。CentOS 7/8、Ubuntu 18.04/20.04 LTS 默认配置都是 SystemD。

对应关系

   ┌─────────┬───────────────────┐
   │Runlevel │ Target            │
   ├─────────┼───────────────────┤
   │0        │ poweroff.target   │
   ├─────────┼───────────────────┤
   │1        │ rescue.target     │
   ├─────────┼───────────────────┤
   │2, 3, 4  │ multi-user.target │
   ├─────────┼───────────────────┤
   │5        │ graphical.target  │
   ├─────────┼───────────────────┤
   │6        │ reboot.target     │
   └─────────┴───────────────────┘

常用命令

查看当前系统的所有 Target
sudo systemctl list-unit-files --type=target
查看当前所有激活的 Target
sudo systemctl list-units --type target --state active
查看某个 Target 是否处于激活状态
sudo systemctl is-active multi-user.target
查看一个 Target 包含的所有 Unit
sudo systemctl list-dependencies multi-user.target
查看启动时的默认 Target
sudo systemctl get-default
设置启动时的默认 Target
sudo systemctl set-default multi-user.target
切换运行级别
# 切换 Target 时,默认不关闭前一个 Target 启动的进程, 
# systemctl isolate 命令改变这种行为, 
# 关闭前一个 Target 里面所有不属于后一个 Target 的进程 
sudo systemctl isolate rescue.target
本文出自 qbit snap