启动 target 是什么
systemd 用 target 表示系统要达到的运行状态,等价于老 sysvinit 的运行级别。multi-user.target 是无图形的多用户命令行环境,graphical.target 会在其基础上拉起显示管理器与桌面会话。服务器交付一般设 multi-user,桌面办公机设 graphical。切换分两步概念:set-default 只改下次开机,isolate 立即切换并停止不属于目标 target 的单元。
基本信息
| 适用平台 | systemd 系 Linux:openEuler、麒麟、UOS、RHEL 8/9 |
|---|---|
| 查看默认 | systemctl get-default |
| 修改默认 | systemctl set-default <target>(下次启动生效) |
| 立即切换 | systemctl isolate <target>(会停止无关单元,谨慎) |
| 常用映射 | multi-user ↔ 运行级 3,graphical ↔ 运行级 5,rescue ↔ 单用户 |
典型使用场景
- 服务器瘦身:交付前把默认启动切成 multi-user,省掉桌面组件的内存与启动开销
- 桌面机器恢复:误把默认设成命令行,切回 graphical 让显示管理器重新工作
- 驱动排障:图形起不来时先 isolate 到 multi-user,进命令行查日志与显卡驱动
- 许可与性能:桌面组件常驻占用资源,虚拟机模板统一切命令行基线
- 误操作回退:现场装错模式后,用 set-default 修正并重启验证
查看与切换
查看与切换
systemctl get-default # 查看当前默认 target
systemctl set-default multi-user.target # 默认命令行,下次启动生效
systemctl set-default graphical.target # 默认图形桌面
systemctl isolate multi-user.target # 立即切到命令行(当前会话会变)
systemctl list-units --type=target --state=active # 看当前激活了哪些 target
systemctl list-dependencies graphical.target | head # 看图形 target 依赖了哪些单元常用 target 对照
| target | 含义 | 典型用途 |
|---|---|---|
| multi-user.target | 多用户命令行 | 服务器默认,无图形 |
| graphical.target | 多用户加图形 | 桌面办公机,依赖 multi-user |
| rescue.target | 单用户救援模式 | 修复基础配置,需 root 口令 |
| emergency.target | 最小紧急模式 | 仅 root 文件系统只读挂载 |
| reboot.target / poweroff.target | 关机与重启 | 常用 systemctl 别名替代 |
isolate 会停止不属于目标 target 的单元,可能直接断网络与显示管理器;远程 SSH 环境不要 isolate 到 graphical,救援类操作尽量到本地控制台做。
set-default 只是把 /etc/systemd/system/default.target 这个软链接指过去,不影响当前会话;想立刻生效只能 isolate 或重启。