LINUX学习:漫谈传统的 Linux 初始化系统的运行级别

LINUX学习:漫谈传统的 Linux 初始化系统的运行级别,第1张

概述介绍《LINUX学习:漫谈传统的 Linux 初始化系统的运行级别》开发教程,希望对您有用。

《liNUX学习:漫谈传统的 linux 初始化系统的运行级别》要点:
本文介绍了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 系统的所用运行级别如下:

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

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

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

/etc/rc2.d$ lsREADME S20smartmontools S50saned S99grub-commonS20kerneloops S20speech-dispatcher S70dns-clean S99ondemandS20rsync S20sysstat S70pppd-dns S99rc.local/etc/rc2.d$ cd../rc3.d/etc/rc3.d$ lsREADME S20smartmontools S50saned S99grub-commonS20kerneloops S20speech-dispatcher S70dns-clean S99ondemandS20rsync S20sysstat S70pppd-dns S99rc.local/etc/rc3.d$ cd../rc4.d/etc/rc4.d$ lsREADME S20smartmontools S50saned S99grub-commonS20kerneloops S20speech-dispatcher S70dns-clean S99ondemandS20rsync S20sysstat S70pppd-dns S99rc.local/etc/rc4.d$ cd../rc5.d/etc/rc5.d$ lsREADME S20smartmontools S50saned S99grub-commonS20kerneloops S20speech-dispatcher S70dns-clean S99ondemandS20rsync S20sysstat S70pppd-dns S99rc.local

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

$ ls-ltotal 4-rw-r--r--1 root root 677Feb162016 READMElrwxrwxrwx 1 root root 20Aug3014:40 S20kerneloops ->../init.d/kerneloopslrwxrwxrwx 1 root root 15Aug3014:40 S20rsync ->../init.d/rsynclrwxrwxrwx 1 root root 23Aug3016:10 S20smartmontools ->../init.d/smartmontoolslrwxrwxrwx 1 root root 27Aug3014:40 S20speech-dispatcher ->../init.d/speech-dispatcherlrwxrwxrwx 1 root root 17Aug3114:12 S20sysstat ->../init.d/sysstatlrwxrwxrwx 1 root root 15Aug3014:40 S50saned ->../init.d/sanedlrwxrwxrwx 1 root root 19Aug3014:40 S70dns-clean ->../init.d/dns-cleanlrwxrwxrwx 1 root root 18Aug3014:40 S70pppd-dns ->../init.d/pppd-dnslrwxrwxrwx 1 root root 21Aug3014:40 S99grub-common ->../init.d/grub-commonlrwxrwxrwx 1 root root 18Aug3014:40 S99ondemand ->../init.d/ondemandlrwxrwxrwx 1 root root 18Aug3014:40 S99rc.local->../init.d/rc.local

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

/etc/rc1.d$ ls-ltotal 4lrwxrwxrwx 1 root root 20Aug3014:40 K20kerneloops ->../init.d/kerneloopslrwxrwxrwx 1 root root 15Aug3014:40 K20rsync ->../init.d/rsynclrwxrwxrwx 1 root root 15Aug3014:40 K20saned ->../init.d/sanedlrwxrwxrwx 1 root root 23Aug3016:10 K20smartmontools ->../init.d/smartmontoolslrwxrwxrwx 1 root root 27Aug3014:40 K20speech-dispatcher ->../init.d/speech-dispatcher-rw-r--r--1 root root 369Mar122014 READMElrwxrwxrwx 1 root root 19Aug3014:40 S30killprocs ->../init.d/killprocslrwxrwxrwx 1 root root 19Aug3014:40 S70dns-clean ->../init.d/dns-cleanlrwxrwxrwx 1 root root 18Aug3014:40 S70pppd-dns ->../init.d/pppd-dnslrwxrwxrwx 1 root root 16Aug3014:40 S90single ->../init.d/single

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

ID:3:initdefault:

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

$ runlevelN 3

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

$ runlevel23

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

 

在 linux 系统中如何使用运行级别?

为了扼要重述在系统中如何使用运行级别,下面有几个关于运行级其余快速问答问题:

若何查询系统当前的运行级别?

使用 runlevel 敕令.

如何查看特定运行级别所联系关系的服务进程?

查看与该运行级别联系关系的运行级别开始目录(例如,/etc/rc2.d 对应于运行级别 2).

若何查看系统的默认运行级别?

首先,查看 /etc/inittab 文件是否存在.如果不存在,就执行 runlevel 敕令查询,你一般就已经处在该运行级别.

如何转变系统运行级别?

init 命令(例如 init 3)临时改变运行级别,通过修改或创立 /etc/inittab 文件永久改变其运行级别.

能转变特定运行级别下运行的服务么?

当然,通过转变对应的 /etc/rc?.d 目录下的符号连接即可.

还有一些其他的什么必要考虑?

当改变系统运行级别时,你应该特别当心,确保不影响到系统上正在运行的服务或者正在使用的用户.

(题图:vincent Desjardins (CC BY 2.0))

via: https://www.networkworld.com/article/3222070/linux/maneuvering-around-run-levels-on-linux.HTML

作者:Sandra Henry-Stocker 译者:penghuster 校对:wxy

本文由 LCTT 原创编译,linux中国 荣誉推出

本文永远更新链接地址

《liNUX学习:漫谈传统的 linux 初始化系统的运行级别》是否对您有启发,欢迎查看更多与《liNUX学习:漫谈传统的 linux 初始化系统的运行级别》相关教程,学精学透。内存溢出PHP学院为您提供精彩教程。

总结

以上是内存溢出为你收集整理的LINUX学习:漫谈传统的 Linux 初始化系统的运行级别全部内容,希望文章能够帮你解决LINUX学习:漫谈传统的 Linux 初始化系统的运行级别所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1042238.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存