Linux查看系统运行级别,multi-user.target详解
前言
经常听到别人说"运行级别 3"、"运行级别 5",这是什么意思?CentOS7 之后用 systemd 代替了老的 SysVinit,运行级别也变成了 target。本文讲一下怎么查看和切换系统运行级别。
老的运行级别(SysVinit)
老系统(CentOS6 之前)用数字表示运行级别:
| 级别 | 含义 |
|---|---|
| 0 | 关机 |
| 1 | 单用户模式(救援模式) |
| 2 | 多用户模式(无 NFS) |
| 3 | 完全多用户模式(命令行,服务器常用) |
| 4 | 未使用 |
| 5 | 图形界面模式 |
| 6 | 重启 |
新的 target(systemd)
CentOS7 之后用 target 代替了数字运行级别:
| target | 对应老级别 | 含义 |
|---|---|---|
| poweroff.target | 0 | 关机 |
| rescue.target | 1 | 救援模式 |
| multi-user.target | 3 | 命令行模式(服务器常用) |
| graphical.target | 5 | 图形界面模式 |
| reboot.target | 6 | 重启 |
查看当前运行级别
systemctl 命令
systemctl get-default
输出:
multi-user.target
就是当前默认的运行级别是命令行模式。
老命令(还能用)
runlevel
输出类似:
N 3
第一个是上次运行级别(N 表示没有),第二个是当前运行级别。
切换运行级别
临时切换(重启后恢复)
systemctl isolate 目标target
比如从图形界面切到命令行:
systemctl isolate multi-user.target
或者从命令行切到图形界面:
systemctl isolate graphical.target
永久切换(重启后生效)
systemctl set-default 目标target
比如默认启动到命令行模式:
systemctl set-default multi-user.target
默认启动到图形界面:
systemctl set-default graphical.target
常用操作
进入救援模式
系统出问题了进不去?进救援模式:
systemctl rescue
进入紧急模式
更底层的救援模式:
systemctl emergency
关机
systemctl poweroff
或者:
systemctl halt
重启
systemctl reboot
常见坑
坑1:图形界面切命令行后黑屏
执行了 isolate multi-user.target,屏幕黑了。
原因: 这是正常的,切到命令行模式就是黑屏,只有终端提示符。
解决: 输入用户名密码登录就行。
坑2:设置了 multi-user.target 但还是进图形界面
执行了 set-default multi-user.target,但重启后还是进图形界面。
原因: 可能有多个桌面管理器在抢着启动。
解决: 确认一下:
systemctl get-default
应该显示 multi-user.target。如果不对,再执行一次。
坑3:把运行级别设成 0 或 6 了
不小心设成了 poweroff.target 或 reboot.target。
后果: 一开就关机或者一开就重启,无限循环。
解决: 进救援模式改回来。
总结
| 命令 | 作用 |
|---|---|
systemctl get-default |
查看当前默认运行级别 |
systemctl set-default multi-user.target |
设置为命令行模式 |
systemctl set-default graphical.target |
设置为图形界面模式 |
systemctl isolate multi-user.target |
临时切到命令行 |
systemctl isolate graphical.target |
临时切到图形界面 |
runlevel |
老命令查看运行级别 |
服务器一般用 multi-user.target(命令行模式),更省资源、更稳定。
遇到问题加QQ23979811 协助处理