首页/系统/Linux 运维命令速查/systemd target 运行级别管理
systemd 与服务42 条

systemd target 运行级别管理

target 取代传统 runlevel:multi-user.target 对应多用户文本、graphical.target 图形;get-default/set-default 与 isolate 切档。

Linux 运维命令速查系统更新于 2026-10-13

target 是什么

target 是 systemd 里的一组单元,用来替代传统 SysV 的 runlevel:multi-user.target 相当于多用户文本模式(runlevel 3),graphical.target 相当于图形模式(runlevel 5),rescue.target 相当于单用户救援模式(runlevel 1)。target 本身几乎不做具体工作,它是依赖关系的锚点与分组:把一批服务挂到某个 target 的 WantedBy 下,启动该 target 就会连带拉起它们。

基本信息

适用平台Linux(systemd)
常用命令systemctl get-default / set-default / isolate / list-units --type=target
默认目标/etc/systemd/system/default.target,通常是指向 multi-user.target 或 graphical.target 的符号链接
常见 targetpoweroff、rescue、emergency、multi-user、graphical、reboot
权限说明set-default 与 isolate 需要 root

典型使用场景

  • 服务器统一为文本模式:set-default multi-user.target,避免不必要的图形栈占用资源
  • 系统救援:系统不可达时从控制台切 rescue.target 做最小化维护
  • 确认启动链:用 list-dependencies 看某个 target 到底会拉起哪些单元
  • 排查服务不自启:确认单元的 WantedBy 目标是否与默认 target 一致
  • 无人值守设备:把图形与不必要的服务从启动链里摘掉,缩短启动时间

常用示例

常用示例
systemctl get-default                       # 查看当前默认启动目标
systemctl set-default multi-user.target     # 设为文本模式,服务器常用
systemctl isolate rescue.target             # 临时切救援模式,谨慎使用
systemctl list-units --type=target          # 列出已加载的 target
systemctl list-dependencies multi-user.target | head -30   # 看依赖链里有哪些单元
ls -l /etc/systemd/system/default.target    # 直接看默认目标的软链接指向

runlevel 对照

target传统 runlevel用途
poweroff.target0关机
rescue.target1单用户救援,需要 root 口令
multi-user.target3多用户文本模式,服务器默认
graphical.target5图形界面模式
reboot.target6重启
emergency.target无对应最小环境,几乎不挂载文件系统
get-default 看的就是 /etc/systemd/system/default.target 这个符号链接,set-default 做的是重建该链接,所以手工改链接也能达到同样效果,只是用命令更不容易出错。别把它和 grub 的默认启动项混淆:后者决定引导菜单选哪个内核,systemd 的默认目标是在内核起来之后才生效,两层各管一段。
isolate 会停掉不在目标依赖链里的单元:远程 isolate rescue.target 会连带断开 SSH,务必先确认有控制台或带外管理可用。isolate 与重启不同,它不会清理与系统单元无关的普通用户进程。
判断一个服务是否会开机自启,看的是它有没有被某个 target 或其它已启用单元 WantedBy;systemctl is-enabled 只能说明单元自身的启用状态,不等于它在启动链里真的会被拉起。排查自启问题要顺着 systemctl list-dependencies default.target 这条链看。
切到 graphical.target 只是启动图形相关的单元,并不会替你安装图形栈;反过来从图形切回文本模式,isolate 会停掉 display-manager 之类的单元,但已经打开的图形会话进程不一定立刻退出。

易错点

  • set-default 只改下次启动的行为;isolate 立即切换但重启后又回到默认值,两者要配合确认
  • 自定义 .target 必须被 WantedBy 关系挂进启动链才会被拉起,缺依赖会静默不生效
  • rescue 与 emergency 会切到需要 root 口令的救援 shell,远程操作等于自断连接
  • isolate 不会杀死不在依赖链里的普通用户进程,看到残留进程属正常,不要误解为命令失败
  • 容器里 PID 1 通常不是 systemd,这些命令在容器内无意义甚至不可用

数据来源与参考

  • man 5 systemd.special(target 清单)
  • man 1 systemctl(isolate)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌