进入init 3的三种方法
方法1:使用telinit
命令(推荐)
sudo telinit 3
- 原理:
telinit
是切换运行级别的标准命令,向init
进程发送指令。 - 效果:系统立即终止图形界面(如GNOME/KDE),切换到纯命令行终端。
- 验证:执行
who -r
查看当前运行级别(显示run-level 3
)。
方法2:使用init
命令
sudo init 3
- 说明:
init
是telinit
的软链接,功能相同,部分旧系统可能仅支持init
。
方法3:修改默认运行级别(永久生效)
- 编辑配置文件:
sudo nano /etc/inittab # 适用于SysVinit系统
- 找到行
id:5:initdefault:
,将5
改为3
(若没有则新增一行)。 - 重启生效:
sudo reboot
systemd系统的替代方案(现代Linux发行版)
大多数新系统(如Ubuntu 18.04+、CentOS 7+)已用systemd
替代传统init
,需使用以下命令:
sudo systemctl isolate multi-user.target # 临时进入等效模式
- 设为默认:
sudo systemctl set-default multi-user.target
关键注意事项
- 权限要求:必须使用
sudo
或root
账户执行。 - 图形界面中断:切换后图形界面会关闭(运行级别5为图形模式)。
- 恢复图形界面:
- 临时恢复:
sudo telinit 5
或sudo systemctl start graphical.target
- 永久恢复:将默认级别改回
5
或graphical.target
。
- 临时恢复:
- 系统兼容性:
- 传统系统(Debian 7/CentOS 6):支持
init 3
。 - 现代系统(Ubuntu/CentOS 7+):使用
systemd
命令。
- 传统系统(Debian 7/CentOS 6):支持
- 风险提示:
- 未保存的图形界面工作会丢失。
- 确保命令行下具备管理能力(无图形工具)。
常见问题解答
- 如何查看当前运行级别?
runlevel # 传统系统 systemctl get-default # systemd系统
- 切换后无法联网?
运行级别3默认启用网络,检查服务状态:sudo systemctl status NetworkManager
。 - 误操作导致黑屏?
按Ctrl+Alt+F2
~F6
切换终端,登录后执行telinit 5
恢复。
为什么需要init 3?
- 服务器运维:减少资源占用(图形界面消耗内存/CPU)。
- 系统修复:图形界面崩溃时,命令行更稳定。
- 批量管理:便于通过SSH远程控制多台设备。
引用说明基于Linux man-pages (
man init
、man systemd
)、SysVinit文档及Red Hat/CentOS官方指南,具体命令可能因发行版差异略有不同,请以实际系统为准。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4377.html