如何检查Linux中的runlevel
runlevel是基于UNIX的操作系统运行的模式之一。
在Linux内核中,存在7个运行级别,从0到6开始。
系统可以一次启动到一个运行级别。
默认情况下,向运行框架3或者运行vel 5.运行框图3的系统boot子为CLI,5是GUI。
默认的runlevel在大多数Linux操作系统中在/etc/inittab文件中指定。
使用runlevel,我们可以轻松了解x是否正在运行,或者网络是可操作的,等等。
在本简要教程中,我们将讨论如何在Linux操作系统中检查Runlevel。
检查Linux中的Runlevel(Sysv init)
以下是Linux发行版中的Runlevels列表,它与Sysv Init分发为默认服务管理器。
- 0 - 停止
- 1 - 单用户文本模式
- 2 - 未使用(用户可定义)
- 3 - 全多用户文本模式
- 4 - 未使用(用户可定义)
- 5 - 全多用户图形模式(具有基于X的登录屏幕)
- 6 - 重新启动
现在,让我们看看如何找到润滑液。
要查找系统Runlevel,请打开终端并运行以下命令:
$runlevel
上述命令的示例输出将是:
N 3
在上面的输出中,字母'n'表示自系统启动以来尚未更改运行级别。
并且,3是当前的runlevel例如:系统处于CLI模式。
在较新版本的init中,我们可以使用名为Runlevel和Prevlevel的环境变量找到当前和以前的Runlevel详细信息。
例如,要查找当前的runlevel,我们需要运行:
$echo $RUNLEVEL
要查找以前的runlevel:
$echo $PREVLEVEL
如果我们想将runlevel更改为其他东西,请编辑/etc/inittab文件:
$sudo vi /etc/inittab
查找并编辑条目initdefault到我们选择的Runlevel。
例如,要将Runlevel设置为多用户图形模式(RunleVel 5),请修改如下所示。
id:5:initdefault:
保存并关闭文件。
重新启动系统以登录新润滑。
有关Runlevels的更多详细信息,请参阅Man页面。
$man runlevel
检查Linux(Systemd)的runlevel
在最近的Linux系统之类的Linux系统中,Ubuntu 16.04 LTS,Runlevels的概念已被系统替换为系统。
以下是Linux发行版中的SystemD目标列表,它是用SystemD分发为默认服务管理器。
- runlevel0.target,poweroff.target - halt
- runlevel1.target,Rescue.target - 单用户文本模式
- runlevel2.target,multi -User.target - 未使用(用户可定义)
- runlevel3.target,multi -User.target - 全多用户文本模式
- runlevel4.target,multi -User.target - 未使用(用户可定义)
- runlevel5.target,graphical.target - 全多用户图形模式(使用基于X的登录屏幕)
- runlevel6.target,reboot.target - 重启
在使用SystemD作为默认服务管理器的Linux系统中,我们可以使用命令找到当前目标:
$systemctl get-default
示例输出将是:
graphical.target
如上所述,我当前的runlevel(目标换句话说)为5,它是图形模式。
要查看所有当前加载的目标,请运行:
$systemctl list-units --type target
示例输出:
UNIT LOAD ACTIVE SUB DESCRIPTION basic.target loaded active active Basic System bluetooth.target loaded active active Bluetooth cryptsetup.target loaded active active Encrypted Volumes getty.target loaded active active Login Prompts local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target loaded active active Local File Systems network-online.target loaded active active Network is Online network.target loaded active active Network nss-user-lookup.target loaded active active User and Group Name Lookups paths.target loaded active active Paths remote-fs.target loaded active active Remote File Systems slices.target loaded active active Slices sockets.target loaded active active Sockets sound.target loaded active active Sound Card swap.target loaded active active Swap sysinit.target loaded active active System Initialization timers.target loaded active active Timers LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, for example:generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 17 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
上述命令只显示活动目标。
要查看所有加载的目标(活动和非活动),请运行:
$systemctl list-units --type target --all
如果我们想将runlevel更改为其他东西,例如RunleVel3.target,请设置如下所示:
$sudo systemctl set-default runlevel3.target
要在当前会话中更改为不同的目标单元,请运行以下命令:
$sudo systemctl isolate runlevel3.target
有关更多详细信息,请参阅Systemd Man页面。
$man systemd
使用"who"命令检查Linux中的runlevel
在下面的注释部分建议的读者时,我们可以使用以下命令找到runlevel:
$who -r
示例输出:
run-level 5 2017-09-04 13:40