05 CentOS Linux的运行级别

文章类别 in linux

为了助于后面的学习,我们在此之前还是需要了解一下Linux的运行机制,这篇就来介绍Linux的运行级别。

Linux的启动

当你启动Linux系统的时候,它首先会从BIOS开始去引导程序将内核映像加载到内存里边,然后进行内核初始化,内核初始化的最后一步就是启动PID为1的进程,这个进程是系统的第一个进程,init进程,它会产生其他所有用户进程。

系统的内核运行起来还是不够的,这时候init系统会定义管理和控制init进程的行为,并且会组织运行很多独立或者相关的初始化工作,让系统进入一个用户设定的运行模式中去。

init系统

大多数Linux的发行版的init系统都会和SystemV相兼容,所以会叫做sysvinit系统,它的好处是概念简单清晰,使用shell脚本,不过它的启动是一次一个串行的启动,这样会导致系统启动缓慢

后来改进了sysvinit系统,就先后出现了upstartsystemd这两个新的init系统。目前ubuntu就是使用的是upstart系统,而我们要学习的CentOS 7.x就是使用的是systemd系统。

运行级别

CentOS7.x之前用的是sysvinit系统,这个init系统用「rublevel」来表示运行级别,sysvinit系统在启动的时候会去寻找 etc/inittab下是否有initdefault的默认启动项,有就会启动默认的级别。

到了CentOS7.x,使用了systemd系统,这个init系统用「target」来表示运行级别。在这个init系统中,系统的默认运行级别是用软链接来实现的。

我们要在CentOS7.x中查看默认的运行级别可以输入:ll /etc/systemd/system/default.target:

target

我们可以看到default target 为 : graphical.targte(完全多用户模式,默认登录到X-windows系统,就是登录到Linux的图形界面)。

接下来我们看看target运行级别的对应,输入 ll /lib/systemd/system/runlevel*.target

target

其中:

  • 0 为 poweroff.target : 关机模式
  • 1 为 rescue.target : 救援模式
  • 2,3,4 为 multi-user.target : 多用户模式
  • 5 为 graphical.target : 图形界面多用户模式
  • 6 为 reboot.target : 重启模式

修改默认级别

我们刚刚用ll /etc/systemd/system/default.target来查看目前系统的默认运行级别为 graphical.targte(完全多用户模式,默认登录到X-windows系统,就是登录到Linux的图形界面),也就是runlevel5。

如果我们要修改默认级别,那么就需要先删除存在的软链接,然后重新建立链接指向你要设置的运行级别即可。

比如我要将默认的运行级别修改为 multi-user.target 多用户模式 :

  1. 删除软链接:rm -rf /etc/systemd/system/default.target
  2. 重新建立软链接: ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

target

然后查询可以看到,我们已经将默认运行级别改了:

target