以下内容都在hrel8环境下进行
对于linux系统有7个运行级别,我们先不看这7个运行级别都是什么,我们先看看如何查看自己当前的运行级别:
我们可以看见有两个结果,一个是N,一个是5,其中前一个代表前一个运行级别,后面的代表当前运行级别,那么N代表什么呢?N就是没有,也就是说之前没有切换过运行级别。我们来看每个运行等级代表什么:
运行级别0:系统停机状态,系统的默认运行级别不能等于0,否则不能正常启动。
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录。
运行级别2:多用户状态,但是没有网络连接。
运行级别3:完全多用户模式,这也是linux服务器最常见的运行等级。
运行级别4:保留未使用。
运行级别5:窗口模式,支持多用户,支持网络。
运行级别6:重启。
我们最常见的两个运行等级就是3和5,而且不论什么时候,linux系统只能在一种runlevel下运行。那么对于我当前的系统,它的运行级别是5,也就是说它现在是窗口模式,也就是图形模式。如果我们想要切换等级呢?你不妨试试init 等级数
这个命令。但我们要注意一点,就是如果我们要切换运行等级,就要重新登陆。但是我们要注意一种特殊情况,就是如果我们当前的运行等级是3,也就是我们现在是没有图形界面的状态,我们输入startx
命令就可以开启图形界面,但是这个时候我们不用输入密码登陆,而且当我们用runlevel
命令来看运行级别的时候,会发现结果是“N 3”(如果之前切换过运行等级,那么这里的N就不是N而是之前的运行等级了),也就是说系统不认为我们是切换了一个运行级别,而是认为这里我们只是启动了一个软件,对,软件,linux与windows不同的就是windows是以图形界面为主体的,如果图形界面出了问题,那么windows就难以正常运行,但是linux系统不一样的就是linux系统的主体其实是它的命令行,至于你的图形界面,系统认为它是一个软件,它是可有可无的。
如上图,其中说道:如果我们想设置运行等级,那么我们需要运行这个命令:systemctl set-default TARGET.target
,那么我们如何查看有当前的运行等级呢?它说我们要用systemctl get-default
这个命令,下图可以看到我当前使用的是图形这个运行等级:
我们来看看rhel8中有哪些target(下面的格式为运行等级:target
):
0:poweroff.target
1:rescue.target
2,4:multi-user.target 这个是用户定义/域特定运行级别,默认等同于3
3:multi-user.target
5:graphical.target
6:reboot:target
emergency:emergency.target 这个是急救模式
那么对于rhel8,它的配置文件在这个位置:/etc/default/grub
我们可以在GRUB_CMDLINE_LINUX这行中加一个systemd.unit=runlevel3.target,修改之后如下:
GRUB_CMDLINE_LINUX=“crashkernel=auto resume=/dev/mapper/rhel-swap rd.luks.uuid=luks-66644c18-da1d-4d24-920b-c67ac6eeb68b rd.luks.uuid=luks-76f13678-1771-485a-9c9b-9216f232f593 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet systemd.unit=runlevel3.target”
改完之后我们需要重建/boot/grub2/grub.cfg文件,命令如下:
grub2-mkconfig -o /boot/grub2/grub.cfg
该更改对所有配置的内核的后续系统重新引导均有效。
鄙人才疏学浅,刚刚开始学linux,希望有错误能够得到指正,谢谢。