什么是Linux上的运行级别?
当Linux系统启动时,它将进入其默认运行级别并运行与该运行级别关联的启动脚本。我们还可以在运行级别之间进行切换,例如,有一个用于恢复和维护操作的运行级别。
传统上,Linux使用System V风格的初始化脚本,而新的初始化系统最终将淘汰传统的运行级别,但它们还没有。例如,Ubuntus Upstart系统仍然使用传统的System V样式脚本。
什么是运行级别?
当Linux系统启动时,它会启动init进程。 init负责启动系统上的其他进程。例如,当我们启动Linux计算机时,内核将启动init,并且init执行启动脚本以初始化硬件,启动网络,启动图形桌面。
但是,初始化执行的启动脚本只有一组。例如,有多个运行级别带有其自己的启动脚本,一个运行级别可以启动联网并启动图形桌面,而另一个运行级别可以禁用联网并跳过图形桌面。这意味着我们可以从图形桌面模式切换到文本控制台模式,而无需使用单个命令进行联网,也无需手动启动和停止其他服务。
更具体地说,init运行位于与运行级别相对应的特定目录中的脚本。例如,当我们在Ubuntu上输入运行级别3时,init会运行/etc/rc3.d目录中的脚本。
至少,这就是它与传统的System V init系统一起工作的方式。Linux发行版开始取代旧的System V init系统。尽管Ubuntus Upstart当前保持与SysV初始化脚本的兼容性,但将来可能会改变。
运行级别
一些运行级别是Linux发行版之间的标准配置,而某些运行级别则因发行版本而异。
以下运行级别是标准的:
0停止(关闭系统。)
1单用户模式(系统在不启动守护程序或者网络的情况下引导至超级用户模式。非常适合引导至恢复或者诊断环境。)
6重新启动
运行级别2-5取决于发行版。例如,在Ubuntu和Debian上,运行级别2-5相同,并提供具有网络和图形登录功能的完整多用户模式。在Fedora和Red Hat上,运行级别2提供了无网络的多用户模式(仅控制台登录),运行级别3提供了具有网络的多用户模式(仅控制台登录),运行级别4未使用,运行级别5提供了多用户模式。网络和图形登录。
切换到不同的运行级别
要在系统已经运行时切换到另一个运行级别,请使用以下命令:
sudo telinit #
替换为要切换到的运行级别的编号。如果我们运行的发行版不使用sudo,请忽略sudo并以root用户身份运行命令。
直接引导到特定的运行级别
例如,我们可以从启动加载程序Grub选择要运行的运行级别。在启动过程开始时,按一个键以访问Grub,选择启动项,然后按e进行编辑。
我们可以在Linux行的末尾添加single来输入单用户运行级别(运行级别1)。 (按Ctrl + x之后启动。)这与Grub中的恢复模式选项相同。
传统上,我们可以指定一个数字作为内核参数,然后引导至该运行级别,例如,使用3而不是单个引导至运行级别3. 但是,这似乎不适用于最新版本的Ubuntu Upstart,似乎不允许它。同样,如何更改默认运行级别将取决于分发。
尽管Ubuntus Upstart守护程序仍在模拟SystemV初始化系统,但将来很多信息会改变。例如,Upstart是基于事件的,它可以在事件发生时停止和启动服务(例如,服务可以在将硬件设备连接到系统时启动,而在移除设备时停止。)Fedora也有自己的后继产品。初始化,系统化。