centos默认启动图形界面是因为systemd将graphical.target设为默认目标;要改为命令行,需先确认版本:centos 6用/etc/inittab修改initdefault行(如id:3:initdefault:),centos 7+必须用systemctl set-default multi-user.target,混用会失效。

CentOS 默认启动图形界面,是因为 systemd 把 graphical.target 设为了默认目标;要改成命令行,核心就是把它替换成 multi-user.target,但必须分清版本——CentOS 6 和 CentOS 7+ 的机制完全不同,混用命令会直接失败。
怎么确认当前是 CentOS 6 还是 CentOS 7+
别猜,直接看 init 系统:
- 运行
ls /sbin/init,如果输出是/sbin/init(且文件大小约 1MB 左右),大概率是 CentOS 6 或更早; - 运行
ps -p 1 -o comm=,如果返回systemd,就是 CentOS 7+; - 运行
cat /etc/redhat-release,看到CentOS Linux 7或8或9就按 systemd 处理。
CentOS 6 用 /etc/inittab 控制默认 runlevel,CentOS 7+ 完全废弃该文件,改用 systemctl set-default。误在 CentOS 7 上改 /etc/inittab 不生效,还可能被下次更新覆盖。
CentOS 7/8/9:用 systemctl set-default 切换目标
这是唯一可靠、永久生效的方式。临时用 init 3 或 systemctl isolate multi-user.target 只影响本次会话,重启就还原。
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。
- 查当前默认:
systemctl get-default(输出通常是graphical.target); - 设为命令行:
sudo systemctl set-default multi-user.target; - 验证结果:
systemctl get-default应返回multi-user.target; - 重启生效:
sudo reboot; - 注意:
multi-user.target不等于 “没网络”——它默认启用network.target,SSH、DNS、网卡都正常,只是不拉起 GDM/KDM 等显示管理器。
CentOS 6:修改 /etc/inittab 的 initdefault 行
该文件里只有一行真正起作用:id:5:initdefault:。改数字就行,但要注意:
- 必须用 root 权限编辑:
sudo vim /etc/inittab; - 把
id:5:initdefault:改成id:3:initdefault:(3是多用户命令行,5是带 X 的图形界面); - 保存后必须重启才生效,
init 3只是临时切换; - CentOS 6 的
/etc/inittab开头有注释警告:“ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT”,说明它只认id:?:initdefault:这一行,其余全是注释。
改完还进图形界面?检查 display manager 是否残留启用
即使目标设对了,某些桌面环境(如 GNOME)会偷偷把 gdm.service 或 lightdm.service 设为开机自启,强行拉起 GUI。这时候 systemctl get-default 显示 multi-user.target 也没用。
- 查哪些显示管理器在运行:
systemctl list-unit-files | grep -E "(gdm|lightdm|sddm|xdm)"; - 禁用它:
sudo systemctl disable gdm.service(GNOME)或sudo systemctl disable lightdm.service(LightDM); - 禁用后建议再执行一次
sudo systemctl daemon-reload,避免 unit 缓存干扰; - 特别注意:禁用 ≠ 卸载,卸载桌面包(如
dnf groupremove "GNOME Desktop")风险更高,容易误删依赖,不推荐。
最常被忽略的点是:改了 systemctl set-default 之后没禁用 display manager,结果每次重启还是弹出登录窗口——因为 graphical.target 被绕过了,但具体服务自己启动了。










