Linux学习笔记(三):系统运行级与运行级的切换

1.Linux系统与其他的操作系统不同,它设有运行级别。该运行级指定操作系统所处的状态。Linux系统在任何时候都运行于某个运行级上,且在不同的运行级上运行的程序和服务都不同,所要完成的工作和所要达到的目的也都不同。


2.Linux(Red Hat 9.0)设置了7个不同的运行级,系统可以在这些运行级别之间进行切换以完成不同的工作。


3.接下来简单介绍7个系统运行级:

(1).运行级0:关闭计算机。

(2).运行级1:单用户模式。

(3).运行级2:多用户模式(不带网络文件系统NFS支持功能)。

(4).运行级3:带有网络文件系统NFS支持的多用户模式。

(5).运行级4:系统保留备用。

(6).运行级5:用于自动启动XFree86系统(图形方式)。

(7).运行级6:重新启动。

另外还有两种特殊的运行级(运行级)


4.接下来对着7个系统运行级进行理解:

(1).运行级0是为关闭计算机系统而设的,这时系统中所有已开启的服务都要停止,处于运行状态的进程都要转变为终止状态,系统收回所分配的资源,并关闭系统电源。当使用关机命令shutdown -h命令时,系统转入该运行级。

(2).运行级1是为进入单用户模式维护计算机系统而设的,在该运行级上可以运行一些不适合在多用户,多任务模式下运行的命令。这时系统只开启很少的服务。

(3).运行级2,3,5都是多用户模式,只是运行级2,3为字符终端模式,但运行级2不带网络文件系统(NFS)支持,而运行级3带有网络文件系统(NFS)支持。运行级5为图形方式,它使普通用户操作更为简单,方便。

(4).运行级6是为重启计算机系统而设的,这时系统中所有已开启的服务都要停止,处于运行状态的进程都要转变为终止状态,系统收回所分配的资源,并重新启动计算机系统,当使用shutdown -r或reboot命令时,系统转入该运行级。


5.系统运行级的查看,可以通过执行命令方式或查看配置文件方式实现:

(1).执行命令方式:用runlevel命令可以查看以前和当前系统的运行级。

在命令行下输入  runlevel  命令,它查看的是/etc/run/utmp 文件,并在标准输出设备上输出以前和当前运行级情况,如下图所示:

技术分享

N 5表示以前运行级未知,当前运行级为5,也就是当前运行级为自动启动的XFree86系统(图形方式)。

(2).查看配置文件的方式,查看配置文件的方式只能查看系统当前的运行级,系统的配置文件是/etc/inittab:

我们可以通过文件编辑器打开,也可以使用打开文件的命令来查看,在命令行下输入:gedit /etc/inittab,即:

技术分享

技术分享

看到上图红色箭头指向框框处,id:5:initdefault:,这行中的5表示当前默认的系统运行级为5.


6.系统运行级的切换可以通过执行命令的方式或修改配置文件的方式实现:

(1).执行命令方式,Linux系统在运行中随时可以根据需要切换系统运行级,切换命令有两个:

命令一:init [0123456Ss]

命令二: telinit [0123456sSQqabcUu]

其中参数的说明:

0~6:切换到指定的系统运行级。

a,b,c:对于那些在/etc/inittab 文件中指定的可以在a,b,c运行级中运行的过程进行处理。

S或s:切换到单用户模式。

Q或q:重新检查/etc/inittab 文件。

U或u:使/etc/inittab 文件重新执行一遍,保留当前状态,不重新检查/etc/inittab 文件。

由于运行级切换时系统要安装或卸载部分文件系统,关闭和开启部分服务,分配其他资源,因此,运行级的切换需要花费一定的时间,所以不要以为出了什么问题,喝杯水休息下。每次切换运行级后,系统又会重新回到用户登录的界面,要求用户重新登录。


接下来我们可以输入上面命令中的命令一,在命令行下输入命令:init 1,进入单用户模式,如下图所示:

技术分享

按下回车键执行此命令,执行后如下:

技术分享

进入了单用户模式,我们可以输入命令:init 2,进入多用户模式(不带网络文件系统NFS支持功能),如下图所示:

技术分享

按下回车键,执行此命令后,如下:

技术分享

输入登陆名和密码后,出现下图的界面:

技术分享

然后我们想要回到刚才的图形化界面,可以输入init 5,来自动启动XFree86系统(图形方式),如下图所示:

技术分享

按下回车键,执行此命令后如下:

技术分享

输入用户名和密码后,进入了图形化界面。

下面我们尝试一下用命令二看可以切换系统运行级么?输入命令 telinit 6,看是否重新启动,输入下图命令:

技术分享

红色框起来的就是在重启这个系统。

(2).切换系统运行级还可以修改配置文件方式,修改配置文件方式就是直接把/etc/inittab 文件中默认运行级修改到要设置的运行级上并保存(在上面第5点有介绍如何打开文件并查看默认系统运行级),但这种方式需要重新启动系统才能使运行级生效,所以,在实际使用中用执行命令的方式切换系统运行级更为方便。


8.接下来介绍系统运行级的服务,不同的运行级下启动的服务是不同的,这些服务在Linux下也称为守护进程。用户可以在字符或图形模式下查看Linux系统已经启动和关闭了哪些服务;也可以在字符或图形模式下修改安装中的默认设置,已开启或关闭自己需要的服务。

(1).下面来介绍如何通过命令方式来查看服务,在命令行下输入命令:chkconfig --list,如下图所示:

技术分享

上图显示的结果从左到右分为:服务名称,运行级,状态。

(2).下面来介绍如何使用图形方式查看系统运行级服务,如下图所示:

技术分享

点击上图红色箭头指向处,也是Services,可以启动服务设置程序:

技术分享

上图复选框打勾的为已开启的服务,未打勾的都是未开启的服务。


9.独立运行的守护进程由init脚本文件负责管理,所有独立运行守护进程的脚本文件都放在/etc/rc.d/init.d 目录下,而在/etc/rc.d/rcx.d中,有许多以K或S开头的符号链接文件,这些链接文件都指向/etc/rc.d/init.d 目录中的脚本文件,以K开头的文件表示在运行级切换时要终止某个服务,以S开头的文件表示在运行级切换时要启动某个服务,我们可以简单理解,K为kill,即杀死,S为start,即启动。

我们可以切换到/etc/rc.d/rc0.d 目录下,查看这些链接文件:

(1).分别输入命令 cd /etc/rc.d/rc0.d 和 ls -l ,如下图所示:

技术分享

可以看到这里的链接文件是指向../init.d/目录下的文件,这个..指的是父目录,init.d目录的父目录为/etc/rc.d 目录,即链接文件指向的是/etc/rc.d/init.d 目录下的文件。


10.对于系统运行级服务的设置可以通过命令方式或图形方式实现:

(1).命令方式:在字符模式下可以用命令来设置开启或关闭服务,设置命令为:ntsysv,执行命令后如下图所示:

技术分享

用光标键或鼠标移动滚动条到想要设置的服务项目上,按空格键或用鼠标单击选项框,选中后有* 表示,若不需要该服务,则再按空格键或用鼠标单击选项框,没选中的没有任何符号表示。

也可以运行setup命令,再选择System services菜单项并按Enter键来设置。

(2)图形方式,与服务查看的图形方式相同,即上面第8点的第二节,可以对服务进行设置。


11.我也是初学Linux,以上内容仅供大家学习参考所用,也有利于本人对学习知识的积累,所以写得不好的地方请见谅,如有错误,请指出,谢谢!



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。