00:00
我们已经了解了系统服务基本的管理方法,而且我们知道了在3TOS6版本之前,主要是直接使用service命令来去进行服务的管理的,而三七之后呢,诶,我们用的就变成了system ctl,诶这样的一个命令去直接做服务的管理,那之前呢,我们其实看到的这些操作啊,都只能是去启动停止一个服务,或者是查看一下当前服务的状态到底是什么。呃,我们知道系统里面有很多服务,它其实是开机自启动的。但是我们知道,如果所有的服务全都是开机,直接就自己启动的话,肯定会拖慢我的启动速度。那我们就想了,除了在这里去启动,手动的去启动服务或者停止服务,我们能不能去配置服务的开机自启动选项呢?哎,当然这个也是可以的,Windows里边就有这样的一些配置,配置的地方嘛,啊,那当然Windows里边都是窗口化的,其实在Linux里边它也有类似的窗口化的配置界面,图形界面啊,只不过不是我们这里边在应用程序里边系统工具去点啊,我们看到这里面其实没有没有跟服务相关的一些配置,更不要说这个开机自启动了,那他应该到哪里去配呢?
01:17
是在这里还是在命令行终端,我们直接敲一个setup。就看到了这样的一个设置工具,交互式的设置工具啊,图形化的界面,那首先我们看到的就是系统服务,我们要的主要就是想要看这个系统服务的配置嘛,所以这里边我们可以直接选择系统服务,然后按回车。哦,那进来之后我们就会看到很多不同的服务,当前全部都是系统服务,那这里边他就在问了,哪些服务应该自动启动呢?那下边我们可以看到啊,每一个服务前面都会有一个分括号,然后里边。有可能有一个芯,有可能没有,哎,那我们就知道了,有芯的代表当前的服务就是开机自启动,那如果要是没芯的话,当然就是开机不会启动啊,所以这里边我们可以看到这个network啊,本身它其实是开机自启动的,这也就是为什么我们一开始会看到network和network manager2个网络服务其实都是一个active状态啊,它本身开机都是要启动。
02:25
所以如果说我们想要不让它开机自启动的话,可以在这里啊,怎么配它呢?就是直接按下空格,选中之后按下空格当前它就变成不是开机自启动了啊,当然你如果想要配这个开机自启动的话,再按一下,这就又变成有星号,就变成开机自启动了。这里还要多说一句的,就是我们看到啊,上面其实有一个类似于标题的东西,先括号括起来的,那就是分成了两类,一类叫做sys v in scripts,也就是说这是什么呢?SYS当然就是了。
03:02
这就是所谓的system v的启动脚本,然后在这个栏目下边的只有network cons和network。其实通过这个描述我们已经发现了,这说的是什么呢?这其实就是老版本的启动方式,在ETC的点D目录下边只有这两个服务嘛,所以它其实本质上是什么呢?是system v的启动脚本。而下面这些更多的服务,他们就统称叫做system d services system d的服务啊,那所以前面我们说了那个目录结构里边,不就是在system d这个目录下边嘛,然后还有一个对应的服务名称,本身也就叫这个system d啊,所以我们可以认为三套S7新版本里边啊,所有的服务都基于system d这样一个守护进程。好,那这个到底又是怎么回事呢?这里我们可以展开来说一说啊,其实在呃,早期的Linux版本里边,因为它是基于unix来进行的设计和优化嘛。
04:12
所以呢,呃,其实在这个unix里边。他对于系统服务的管理,也就影响到了Linux里边的做法啊,那Linux里边有一个非常重要的版本,也是后面非常稳定的版本,就叫做system。SYSTEM5,我们知道五的罗马字母就是V,哎,所以这个版本就叫做system v。那么在这个版本里边,系统第一个启动的用户进程就叫做。就是我们所说的这个。初始化啊,呃,Initialize的前四个字母这个进程就叫做in,所有的后边这个系统服务的守护进程都是由依你的进程去调用启动,哎,所以这相当于是我们整个系统服务管理的一个初始的进程,哎,它就是追根溯源追到底的那个进程。
05:11
接下来in进程,它会通过调用点D目录下,当然这说的是Linux系统了啊,它会调用这个目录下的所有的脚本来启动相应服务的守护进程。我们说这里的Li进程,它其实是整个系统在Linux内核自身初始化之后,主动启动的第一个用户进程,哎,那所以之后呢,Int进程就会根据用户自己定义的。系统运行级别来去启动不同的服务进程啊,就是这里边的这个服务进程到底选取哪些去进行开机的自启动,是跟我们当前系统运行的级别有关系的。
06:01
这样的话,我们当前的系统就可以进入不同的操作环境,就可以拥有不同的操作功能,哎,这里面就涉及到了另外一个概念,就是所谓的运行级别,所以接下来呢,我们直接来看一看文档里边。什么叫做系统的运行级别啊?那这一部分呢,我们可以首先先从三套S6老版本的Linux环境里边设置的这个系统运行级别来讲起啊,那什么叫做运行级别呢?Run level,我们先来梳理一下Linux在整个系统开机启动过程当中,它所有启动的步骤。哎,那首先开机,开机之后呢,首先进入到BIS的自检和启动的过程,然后接下来呢,诶,当然就是去引导分区里边,诶boot这里边去获取我们当前的引导文件和整个Linux内核里边的一些内容,进行整个系统的初始化,初始化完成之后呢,接下来第一个启动的就是这里的一你的进程。
07:02
这就是我们说的用户级别主动启动的第一个进程,然后接下来呢,他就要去判断当前系统的运行级别到底是什么样的,根据运行级别,然后启动对应的系统服务,诶这就是整个这个系统启动的基本的一个步骤,那这里面呢,就涉及到Linux系统里边到底有什么样的运行级别呢?我们这里面看到啊,总共有七种,从零到六,每一种都对应了不同的功能,简单来讲就是级别越高往下看啊,级别越高支持的功能就会越丰富,那级别越低呢,功能就会越简单越基础啊,当然了最后一个这个级别六不算啊,级别六这个我们看到它是一个重启的级别啊,那那这个跟我们前面其实是没什么关系的。我们一个一个看一下。一开始级别零,它其实是一个停机模式,系统是处于停机状态的,所以它是什么意思呢?啊,就是系统起来之后直接就关掉了。
08:11
所以默认情况下,系统的运行级别不能设成零,那您如如果设成零的话,一起来就关掉,那肯定就不能正常启动了吧,这是零,然后是一。运行级别一的时候,这个非常重要,这叫做单用户工作模式。在这种模式下,它只支持已root权限去进行登录,只允许root用户登录,而且呢,不能进行远程登录,禁止远程登录。所以它主要用来干什么啊,就相当于只能是root用户在实体的物理机上啊,去做这个系统的维护,然后去做一些相关权限更改啊,比较重要的一些系统管理的操作,那这有点类似于Windows下的安全模式啊,就是整体来讲它启动的服务是最少的,然后呃,相当于是一个最小化的启动,然后去做一些系统级别的管理和更改,那这个其实非常有趣,就是我们可以在启动的时候直接进入。
09:13
这样一个启统级别,这样一个系统级别,然后呢,哎,就可以把跟分区直接更改一下它的状态,因为我们知道本身你如果登录进来的时候,你是root用户,你得输入密码呀,所以在输入密码之前,整个跟分区啊,那个系统所在的这些分区。全部都是只能读不能写入的,即使你是root用户也不能写入,因为你还没登录嘛。而而如果说我们现在是单用户工作状态呢,进来之后就允许我们直接把跟分区做一个re remote啊,就是做一个重新挂载,然后就可以把它改成可写入状态了,诶所以这代表什么呢?这边代表我们可以不用root本身的密码,直接就可以进去了啊,当然了,在进去的时候你要重新设置密码。
10:04
所以他也非常有用,就是假如说你忘记了root密码的话,也可以用这种方式啊,相当于先黑进去,然后再重新设置密码,重新登录。啊,所以呃,这个功能其实还是比较有用的,就是假如说我们忘掉密码之后,可以用这种方式去进行找回啊,或者说重设啊,呃,那当然了,这种方式就是说它是不能远程操作的,你只有。在实体的这个物理机上操作才可以,也就是说你必须要进入到机房里边,才能在运行级别一的场景下去进行操作,所以整体上来讲它还是比较安全的。这是关于级别一,然后后边呢,就是我们更加常见的一些级别了,运行级别二,级别二呢指的是一个多用户状态,注意它是没有NFS的,NFS指的是网络文件系统啊,Network file system,所以就是说运行级别二它已经可以允许多个用户同时去登录了啊,你就不光有root,也可以有普通用户了,它支持的功能肯定更多,但是呢,没有网络。
11:10
哎,这是二,那级别三呢,级别三整体来讲跟二差不多,它是一个完全的多用户状态,也就是说在二的基础上加上了NFS的支持。啊,那所以说对于这个级别三而言,登录进去之后,相当于就是我们的这个控制台命令行模式啊,进去之后就是一个大黑屏,然后你敲敲敲很多个用户都可以进去,这其实已经是我们服务器能够直接操控的一个,可以说是一个完全体的一个状态啊,那所以这个运行级别三是非常常用的一个状态啊,那假如说运行级别三下面如果我断开网络服务的话,那它跟二其实就没什么区别了。那另外除了三之外,后面还有几个级别,我们再看一下运行级别四啊,级别四比较特殊,它是系统未占用未使用的一个保留模式,保留状态,那所以它一般不会用了啊,当然我们在特殊情况下,你想用的话,也可以占用一下它一般情况我不会去用。
12:11
接下来更加重要的是这个运行级别五,运行级别五的话,那就是所谓的图形界面的多用户模式啊,就是登录之后,我们直接就可以进入窗口化的图形GI模式了啊,所以这就是我们现在啊,在这一个当前的环境里边正在执行的这个模式,它的运行级别,系统的运行级别就是。那另外最后还有一个级别六,级别六,我们前面也说了,它是重启模式,也就是说。只要我们以当前级别六,如果启动了系统的话,一起来马上回头就做重启,马上就重启,所以如果你设置了运行级别为六,那系统就相当于可以就是无限循环不停重启了,那相当于还是不能正常启动嘛啊,所以一般也不会把它作为我们当前设置成正常启动的运行级别。
13:05
啊,那不同的运行级别,我们会发现它的这个真正的区别在哪呢?其实就在于启动的时候到底应该默认去起哪些服务,诶那你像前面这个,如果说啊,是这个级别一和级别二这个。级别比较低的这些单用户工作模式,或者是多用户不支持网络的,无网络的多用户模式的话,那很显然这里边支持的服务就会很少。而后边我们这里讲到的级别三,级别五,他们支持默认启动的这些服务肯定就会非常的多啊,这其实就是所谓的这个运行级别的概念。当然其实我们也可以发现啊,这里边有用的,因为我们发现这个,首先零和六这本身它就不能配成这个级别嘛,一旦起了之后,那系统要不就直接关了,要不就开始不停的重启,这不能正常启动吧,它不能配这两个级别,相当于没用,然后这个级别四呢,呃,这是系统保留的,一般也不会去使用。
14:10
另外还有一个一一是单用户工作状态,我们说它相当于安全模式,哎,除非出现特殊情况,我们才会去做这样的一个操作啊,一般也不会用,所以平常能够用到的就是235。我。然后另外我们会发现这个二这个多用户状态呢,它其实跟三一样,就是一个没网络的级别三吧,啊,那或者说三这个状态下,我们把这个网络服务去掉的话,那相当于就跟二一样了吧,所以本质上来讲,最后我们发现了。最关键的,我们平常要用到的就两个级别,一个三,一个五。所以三套S7就彻底做了一个简化啊,就是三和五,这对应的不就是一个是完全的呃,控制台命令行模式,另外一个是图形化的界面模式吗?哎,那所以三七里边的运行级别直接简化成两个关键字了。
15:05
啊,那或者说简化成两个target了,我们说他给的可以认为就是一组服务的集合嘛,哎,所以它是什么的集合呢?这不就是设定了我们到底哪些服务该起,哪些服务不该起吗?诶,所以我们看到现在设置的运行级别就是一个叫做multi user.target。这就相当于之前的运行级别三。就相当于就是多用户有网络的这种模式,而且呢,呃是没有图形界面的,那另外还有一个就是有图形界面的,相当于之前的运行级别五,这个叫做graphical.target这就是三七里边的一个更改。啊,那另外呢,我们还可以去直接查看当前的运行级别,那就是system ctl,然后get default,哎,这其实是查看的是当前,就是默认启动之后的运行级别,但是如果我们没有更改过的话啊,当然你这里边一查,查看的就是当前自己的运行级别了,我们可以在这里边直接看一下,我们先退出。
16:10
在这里直接取消,然后点退出。接下来我们可以运行一下。System ctl同样还是使用system ctl工具去进行管理,后面是get default,诶,那我们看到当前当然启动的就是级别五啊,graphical.target啊,那当然如果说我们想要去更改默认的启动级别的话,你可以用set set default,后面再加上对应的这样一个级别就可以了,要不是graphical.target要不就是multi user.target。这个其实非常简单,那这里多说一句,就是在之前的版本三套六里边查看默认的启动级别是用什么样的方法呢?诶,那就得看配置文件了,这个配置文件是在同样还是ETC下面有一个。In tab啊,类似于我们当前配置的这样的一个东西啊啊,那所以这里边我们看到现在是三到七,当然这里边就全被注掉了,就没有对应的这个default定义了啊,所以我们可以看到这里边也明确的告诉了我们multi user.target相当于就是run level运行级别三啊,那另外graph target相当于就是运行级别五。
17:24
哎,这这就是三六里边啊,在之前的版本里边能够做的这些操作,那另外我们可能会想到,假如说啊,我现在正在。这个运行级别五的状态下,假如说我想更改现在的运行级别,直接切到运行级别三下面去,变成一个就是纯文本的一个大黑屏那样的一个控制台界面,这怎么变呢?其实我们也知道,之前我们有快捷键嘛,Ctrl alt加F2就可以直接切入到一个控制台页面来啊,那在这里边的话,呃,我们当然就可以做一些运行级别三下面做的事情了啊,那如果像切回去的话,是按ctrl alt加F1就可以切回,那如果说我们是使用命令行的话,那应该怎么样呢?那就是直接。
18:12
In。然后运行级别,如果是五,我们想要切到三的话,那就是三,我们看直接一敲也可以进入到当前的这个状态啊,当然了,如果在这里边你如果不想按快捷键回去的话,那就还得我们登录进去。然后接下来来一个伊尼特五。我们可以看到,就又回到了当前。图形化的界面。登录的这个环境,所以这个过程其实就是我们跟我们之前讲到的快捷方式啊,Ctrl alt按着,然后去按对应的F1F2,这样的操作其实本质上是一样的。呃,这就是关于Linux里边系统运行级别和我们当前配置每一个服务开机自启动的这样一个关系。
我来说两句