温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux初始化系统的运行级别

发布时间:2021-08-24 17:41:27 来源:亿速云 阅读:138 作者:chen 栏目:系统运维

本篇内容主要讲解“Linux初始化系统的运行级别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux初始化系统的运行级别”吧!

在 Linux 系统中,运行级别run level是指运维的级别,用于描述一种表明什么服务是可用的系统运行状态。

运行级别 1 是严格限制的,仅仅用于系统维护;该级别下,网络连接将不可操作,但是管理员可以通过控制台连接登录系统。

其他运行级别的系统允许任何人登录和使用,但是不同级别中可使用的服务不同。本文将探索如何配置运行级别,如何交互式改变系统运行级别以及修改该状态下可用的服务。

Linux 系统的默认运行状态是一个在系统开机时使用的运行级别(除非有其他的指示),它通常是在 /etc/inittab  文件中进行配置的,该文件内容通常如下:

id:3:initdefault

包括 Debian 系统在内的一些系统,默认运行级别为 2,而不是上述文件中的 3,甚至都没有 /etc/inittab 文件。

运行级别在默认情况下是如何被配置,其配置依赖于你所运行的 Linux 操作系统的具体发行版本。 例如,在某些系统中, 运行级别 2 是多用户模式,运行级别  3 是多用户模式并支持 NFS (网络文件系统)。 在另外一些系统,运行级别 2 - 5 基本相同,运行级别 1 是单用户模式。例如,Debian  系统的所用运行级别如下:

0 = 停机 1 = 单用户(维护模式) 2 = 多用户模式 3-5 = 同 2 一样 6 = 重启

在 Linux 系统上,运行级别 3 用于共享文件系统给其它系统,可以方便地只通过改变系统的运行级别来启动和停止文件系统共享。系统从运行级别 2 改变到  3 系统将允许文件系统共享,反之从运行级别 3 改变到 2 则系统不支持文件系统共享。

在某个运行级别中,系统运行哪些进程依赖于目录 /etc/rc?.d 目录的内容,其中 ? 可以是 2、 3、 4 或 5  (对应于相应的运行级别)。

在以下示例中(Ubuntu 系统),由于这些目录的配置是相同的,我们将看见上述 4 个级别对应的目录中的内容是一致的。

/etc/rc2.d$ ls README         S20smartmontools      S50saned      S99grub-common S20kerneloops  S20speech-dispatcher  S70dns-clean  S99ondemand S20rsync       S20sysstat            S70pppd-dns   S99rc.local /etc/rc2.d$ cd ../rc3.d /etc/rc3.d$ ls README         S20smartmontools      S50saned      S99grub-common S20kerneloops  S20speech-dispatcher  S70dns-clean  S99ondemand S20rsync       S20sysstat            S70pppd-dns   S99rc.local /etc/rc3.d$ cd ../rc4.d /etc/rc4.d$ ls README         S20smartmontools      S50saned      S99grub-common S20kerneloops  S20speech-dispatcher  S70dns-clean  S99ondemand S20rsync       S20sysstat            S70pppd-dns   S99rc.local /etc/rc4.d$ cd ../rc5.d /etc/rc5.d$ ls README         S20smartmontools      S50saned      S99grub-common S20kerneloops  S20speech-dispatcher  S70dns-clean  S99ondemand S20rsync       S20sysstat            S70pppd-dns   S99rc.local

这些都是什么文件?它们都是指向 /etc/init.d 目录下用于启动服务的脚本符号连接。 这些文件的文件名是至关重要的,  因为它们决定了这些脚本文件的执行顺序,例如, S20 脚本是在 S50 脚本前面运行的。

$ ls -l total 4 -rw-r--r-- 1 root root 677 Feb 16  2016 README lrwxrwxrwx 1 root root  20 Aug 30 14:40 S20kerneloops -> ../init.d/kerneloops lrwxrwxrwx 1 root root  15 Aug 30 14:40 S20rsync -> ../init.d/rsync lrwxrwxrwx 1 root root  23 Aug 30 16:10 S20smartmontools -> ../init.d/smartmontools lrwxrwxrwx 1 root root  27 Aug 30 14:40 S20speech-dispatcher -> ../init.d/speech-dispatcher lrwxrwxrwx 1 root root  17 Aug 31 14:12 S20sysstat -> ../init.d/sysstat lrwxrwxrwx 1 root root  15 Aug 30 14:40 S50saned -> ../init.d/saned lrwxrwxrwx 1 root root  19 Aug 30 14:40 S70dns-clean -> ../init.d/dns-clean lrwxrwxrwx 1 root root  18 Aug 30 14:40 S70pppd-dns -> ../init.d/pppd-dns lrwxrwxrwx 1 root root  21 Aug 30 14:40 S99grub-common -> ../init.d/grub-common lrwxrwxrwx 1 root root  18 Aug 30 14:40 S99ondemand -> ../init.d/ondemand lrwxrwxrwx 1 root root  18 Aug 30 14:40 S99rc.local -> ../init.d/rc.local

如你所想,目录 /etc/rc1.d 因运行级别 1 的特殊而不同。它包含的符号链接指向非常不同的一套脚本。 同样也要注意到其中一些脚本以 K  开头命名,而另一些与其它运行级别脚本一样以 S 开头命名。这是因为当系统进入单用户模式时, 一些服务需要停止。 然而这些 K 开头的符号链接指向了其它级别 S  开头的符号链接的同一文件时, K(kill)表示这个脚本将以指示其停止的参数执行,而不是以启动的参数执行。

/etc/rc1.d$ ls -l total 4 lrwxrwxrwx 1 root root  20 Aug 30 14:40 K20kerneloops -> ../init.d/kerneloops lrwxrwxrwx 1 root root  15 Aug 30 14:40 K20rsync -> ../init.d/rsync lrwxrwxrwx 1 root root  15 Aug 30 14:40 K20saned -> ../init.d/saned lrwxrwxrwx 1 root root  23 Aug 30 16:10 K20smartmontools -> ../init.d/smartmontools lrwxrwxrwx 1 root root  27 Aug 30 14:40 K20speech-dispatcher -> ../init.d/speech-dispatcher -rw-r--r-- 1 root root 369 Mar 12  2014 README lrwxrwxrwx 1 root root  19 Aug 30 14:40 S30killprocs -> ../init.d/killprocs lrwxrwxrwx 1 root root  19 Aug 30 14:40 S70dns-clean -> ../init.d/dns-clean lrwxrwxrwx 1 root root  18 Aug 30 14:40 S70pppd-dns -> ../init.d/pppd-dns lrwxrwxrwx 1 root root  16 Aug 30 14:40 S90single -> ../init.d/single

你可以改变系统的默认运行级别,尽管这很少被用到。例如,通过修改前文中提到的 /etc/inittab 文件,你能够配置 Debian 系统的默认运行级别为  3 (而不是 2),以下是该文件示例:

id:3:initdefault:

一旦你修改完成并重启系统, runlevel 命令将显示如下:

$ runlevelN 3

另外一种可选方式,使用 init 3 命令,你也能改变系统运行级别(且无需重启立即生效), runlevel 命令的输出为:

$ runlevel2 3

当然,除非你修改了系统默认级别的 /etc/rc?.d 目录下的符号链接,使得系统默认运行在一个修改的运行级别之下,否则很少需要通过创建或修改  /etc/inittab 文件改变系统的运行级别。

到此,相信大家对“Linux初始化系统的运行级别”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI