Linux运行级别是什么?一般大家对Linux运行级别的了解可能停留在概念的层面上,而对于Linux运行级别的重要性了解相对较少。今天就跟大家聊聊Linux运行级别的重要性。
你可以将Linux运行级别视为操作系统运行的不同“模式”。这些模式或运行级别中的每一个都有其自己的已打开或关闭的进程和服务的列表。 从Linux启动时开始,它始终处于某个运行级别。
随着你继续使用计算机,此运行级别可能会更改,具体取决于操作系统需要访问的服务类型。
例如,与仅在系统上运行命令行的情况相比,使用图形用户界面运行Linux机器将需要不同的运行级别。
这是因为图形用户界面将需要访问命令行所隐含的各种服务。 为了使系统确定需要打开(或关闭)哪些服务,它会根据需要更改运行级别。
Linux运行级别的重要性
你可能已经使用Linux多年了,而没有意识到有不同的运行级别。 这是因为大多数服务器管理员不需要经常配置它。
但是,Linux运行级别确实使管理员能够更好地控制其管理的系统。
可以更改系统所在的运行级别(稍后将在本文中了解如何操作)以及在运行级别内部运行的服务。 这使我们可以完全控制我们的系统在任何给定时间访问哪些服务。
Linux中有几个运行级别?
Linux中有七个不同的运行级别,从零到六个。 各种发行版可能会不同地使用这七个运行级别,因此要汇编一份确定的运行级别清单并不容易。
相反,你需要检查运行级别如何在你使用的特定发行版上工作。 在大多数情况下,以下列表表示Linux发行版通常如何配置运行级别:
运行级别0关闭系统。
运行级别1是单用户模式,用于维护或管理任务。 你可能还会看到此模式称为运行级别S(S代表单用户)。
运行级别2是多用户模式。 该运行级别不使用任何网络服务。
运行级别3是具有联网功能的多用户模式。 如果你使用的系统没有引导进入GUI(图形用户界面),则这是你惯常使用的运行级别。
不使用运行级别4。 用户可以根据自己的目的自定义此运行级别(我们将在本文后面介绍如何执行此操作)。
运行级别5与运行级别3相同,但它还会启动显示管理器。 如果使用引导进入GUI的系统,则这是你惯常使用的运行级别。
运行级别6重新引导系统。
我当前的运行水平是多少?
你只需在终端中输入“ runlevel”,即可在大多数发行版上看到当前的运行级别。
输入“运行级别”命令时,它将给你两个不同的数字。 第一个数字是系统正在运行的先前运行级别,第二个数字是系统的当前运行级别。
在上面的屏幕截图中,“ N”是“ none”的缩写,表示该系统以前没有处于任何不同的运行级别。 “ 5”表示我们的系统当前处于运行级别5。
在本示例中,我们正在运行CentOS,该CentOS直接引导到图形界面,因此为什么系统直接进入运行级别5。
如何更改当前运行级别?
你可以使用“ telinit”命令更改系统的当前运行级别。 例如,要更改为CentOS上的运行级别3,你可以输入:
$ telinit 3
请记住,你必须是root用户才能执行此命令。 请注意,运行级别在Debian和Ubuntu上的工作方式有所不同-例如,即使不启动GUI,Ubuntu也会启动进入运行级别5。
如果你按照上面的示例,你的屏幕可能会变黑。 这是因为你留在-现在为空-tty。 只需在键盘上执行Alt + F1(或其他功能键)即可将其带到工作终端。
如果再次使用“ runlevel”命令,我们将看到我们现在处于运行级别3,并且由于我们刚刚对其进行了更改,因此上一个运行级别被列为5。
Linux系统的目标是Vs. 运行级别
近年来,systemd已经取代了长期存在的“ System V init”(运行级别)系统。 它仍然以基本相同的方式工作,但是使用一些新命令,并且通常将“运行级别”称为“目标”。
运行级别0 = poweroff.target(runlevel0.target)
运行级别1 = rescue.target(runlevel1.target)
运行级别2 =多用户目标(runlevel2.target)
运行级别3 =多用户目标(runlevel3.target)
运行级别4 =多用户目标(runlevel4.target)
运行级别5 = graphic.target(runlevel5.target)
运行级别6 = reboot.target(runlevel6.target)
随着本教程的进行,我们将继续介绍systemd和你需要知道的命令。
如何在启动时更改默认运行级别?
有很多原因可能导致你希望启动到另一个运行级别。 例如,系统管理员通常会启动到命令行,并且仅在认为必要时才启动图形界面。
对于此功能,你需要确保将默认运行级别设置为3,而不是5。
过去,需要在启动时编辑/ etc / inittab文件以定义默认运行级别。 在某些发行版上,你可能仍然会遇到这种情况。
如果使用几年未升级的操作系统,你仍然会发现此方法很适合你。有很多原因可能导致你希望启动到另一个运行级别。 例如,系统管理员通常会启动到命令行,并且仅在认为必要时才启动图形界面。
$ vi /etc/inittab
在上面的屏幕截图中,运行级别5当前设置为启动的默认运行级别。
截至2016年,大多数主要的Linux发行版都已淘汰了/ etc / inittab文件,而使用systemd目标-我们将在本文后面介绍这些差异。
你可能会发现你的系统根本没有/ etc / inittab文件,或者你的inittab文件可能建议你使用systemd代替,例如CentOS系统中的此屏幕快照。
要检查系统的当前默认目标:
$ systemctl get-default
在上面的屏幕截图中,从系统返回的回复是“ graphical.target”。 你可能会猜到,这等效于运行级别5。
要查看其他可用目标及其关联的运行级别,请输入:
$ ls -l /lib/systemd/system/runlevel*
这些符号链接告诉我们,systemd目标的运行方式几乎与运行级别相同。 那么,如何在启动时更改默认运行级别(或目标)? 我们需要创建一个新的符号链接,如下所示:
$ ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
此命令会将我们的默认运行级别更改为3,因此,下次重新引导时,我们的系统将处于运行级别3而不是5。如果你希望使用不同的运行级别,则只需用其他数字代替“ 3”即可。 命令。
作为参考,该命令中的-f开关指示在创建新链接之前应删除目标文件。 你也可以先使用简单的rm命令将其删除。
你可以再次使用“ systemctl get-default”命令确认更改已成功完成。
运行级别3与。 运行级别5
你将听到并使用最多的两个运行级别分别是3和5。基本上可以归结为:运行级别3是命令行,运行级别5是图形用户界面。
当然,并非每个发行版都遵循此约定,并且你的系统可以由管理员配置,以使这些运行级别具有更多差异。
但是,总的来说就是这样。 如果你想确切了解在这两个运行级别上启用了哪些服务,我们将在下一部分中介绍。
列出在特定运行级别启用的服务
直到最近几年,“ chkconfig -list”是用于列出将在不同运行级别启用的服务的命令。 如果你的操作系统是最新的,则该命令可能会给你带来错误或将你推迟到systemd。
如果要查看引导到图形模式(运行级别5)时将启动什么服务,可以运行以下命令:
$ systemctl list-dependencies graphical.target
要查看默认情况下在其他运行级别上运行的服务,只需将“ graphical.target”替换为你需要查看的目标名称。
进程将在哪个运行级别下运行?
如果要查看特定服务在哪个运行级别运行,可以使用以下命令:
$ systemctl show -p WantedBy [name of service]
例如,如果你想查看SSH守护进程将在哪个运行级别运行,请键入:
$ systemctl show -p WantedBy sshd.service
根据以上屏幕截图中的输出,SSH服务将在运行级别2、3和4(multi-user.target)上启动。
如何更改应用程序的运行级别?
如上所示,我们的SSH服务仅在2-4级运行(multi-user.target)。 如果我们还希望它在启动到图形界面-运行级别5(graphical.target)时启动,该怎么办? 我们可以通过以下命令应用该配置:
$ systemctl enable sshd.service
Linux中运行级别的安全问题
正如我们在本文前面所说的,Linux运行级别的重点是使管理员可以控制在特定条件下运行的服务。对系统进行这种细粒度控制可以增强安全性,因为你可以确保没有多余的服务在运行。
当管理员不知道确切正在运行什么服务时,就会出现问题,因此不必费心保护这些。
你可以使用本指南中的方法来配置默认运行级别并控制正在运行的应用程序。这些做法不仅可以释放系统资源,还可以使服务器更安全。
记住只使用所需的运行级别。例如,如果仅打算使用终端,则没有必要启动运行级别5(图形界面)。
更改为不同的运行级别将引入多个新服务,其中一些服务可能会在后台完全运行,你可能会忘记保护它们。
哪个运行级别最适合我?
确定哪种运行级别最适合所有人取决于情况。通常,你可能会定期使用运行级别3和5。
如果你熟悉命令行并且不需要图形界面,则运行级别3(在大多数发行版中)将是最适合你的。
这将阻止不必要的服务运行。另一方面,如果你想要更多的桌面体验和图形界面来使用各种应用程序等,则运行级别5将是你的首选运行级别。
如果需要在生产服务器上执行维护,则运行级别1非常适合这种情况。这用于确保你是服务器上的唯一服务器(甚至没有启动网络服务),并且可以不间断地执行维护。
在极少数情况下,你甚至可能需要使用运行级别4。这仅在你或系统管理员具有自定义配置的运行级别的特定情况下使用。我们将在下一部分中介绍如何做到这一点。
正如你可能已经假设的那样,你不会(也不能)在运行级别0或6中运行系统,但是可以切换到它们以重新引导或关闭电源。通常没有必要这样做,因为还有其他命令可以为我们执行此操作。
我们可以在Linux中创建新的运行级别吗?
可以在Linux中创建一个新的运行级别,但是极不可能需要这样做。 如果确定要执行此操作,则可以从复制现有的systemd目标之一开始,然后使用自己的自定义进行编辑。
目标位于:
/usr/lib/systemd/system
如果要基于graphical.target(运行级别5)作为新的运行级别/目标,请将该目录复制到新的目标目录。
$ cp /usr/lib/systemd/system/graphical.target /usr/lib/systemd/system/mynew.target
之后,创建一个新的“ wants”目录,如下所示:
$ mkdir /etc/systemd/system/mynew.target.wants
然后从/ usr / lib / systemd / system符号链接要为新的运行级别启用的其他服务。
看完上述内容,你们对Linux运行级别的重要性有进一步的了解吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。