发布于2026-08-16 阅读(0)
扫一扫,手机访问
在 CentOS 7 里,修改默认运行级别不用再去动 systemctl set-default,原因很简单:/etc/inittab 这套方式已经被 systemd 弃用了,继续改基本不会生效。现在的“运行级别”实际上是用 target 来对应的,其中 multi-user.target 大致等同于 runlevel 3,graphical.target 则基本对应 runlevel 5。

CentOS 7 修改默认运行级别,只用 systemctl set-default 就够了,其他方式要么多余、要么容易出错。
原因很直接:在 CentOS 7 里,这个文件已经被 systemd 彻底废弃了。打开后基本只会看到这样一行注释:# inittab is no longer used when using systemd.。也就是说,不管怎么改它,比如把 id:3:initdefault: 这类内容改来改去,实际上都不会生效,系统启动时压根不会去读取这个文件。
/etc/inittab 是 sysvinit 时代的遗留物,CentOS 7 起全部由 systemd 管理multi-user.target ≈ runlevel 3,graphical.target ≈ runlevel 5/etc/inittab 不仅没用,还可能干扰运维排查逻辑systemctl set-default 怎么用才可靠?这是唯一推荐的永久生效方式,它会自动更新 /etc/systemd/system/default.target 的软链接指向,并确保下次启动生效。
sudo systemctl set-default multi-user.targetsudo systemctl set-default graphical.targetsystemctl get-default —— 输出应与你设置的目标一致虽然技术上可行,但绕过 systemctl set-default 直接操作软链接,容易踩三个坑:
/usr/lib/systemd/system/ 或 /lib/systemd/system/(两者通常等价,但硬编码易出错)sudo,否则 ln -sf 失败且无提示set-default 设过,再手动覆盖会导致 systemctl get-default 显示与实际链接不一致(systemd 缓存或解析逻辑冲突)systemctl isolate 和 init 命令只能临时切换当前 session,重启即失效,不是“修改运行级别”的解法。
sudo systemctl isolate multi-user.target 或 sudo init 3sudo systemctl isolate graphical.target 或 sudo init 5systemctl get-default 输出init 3 就是“改了默认级别”,结果一重启又回到 GUI最常被忽略的点:改完必须重启才能验证是否真正生效;systemctl get-default 显示正确 ≠ 下次开机就是这个 target —— 因为内核参数或 GRUB 配置(如 systemd.unit=)仍可能强制覆盖 default.target。
上一篇:Ubuntu如何重置网络设置
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9