ubuntu的启动级别(runlevel)分析

为了让vidalia启动tor和polipo,而不是让他们自己作为服务运行,我了解了一番有关ubuntu 的启动级别,google了一番,读了点English,再#ubuntu-cn请教了一番,写下自己的心得,希望对大家有帮助,更希望大牛给斧正。下面进入正文:

在linux的世界里,所有的linux操作系统都有一个启动级别的概念,启动级别控制着系统启动后所加载的各种功能的不同,实质是在启动后运行各种服务(servcie||daemon)。这里的服务是和windows里的服务的概念相似的,是一种在系统后台独立运行的程序,也就是说他一般不予用户进行交互。

一般的linux分8个级别:0-6和一个'S'级别。0代表关机(halt),6代表重启(restart);1-5分别是不同功能的级别,其中1级别是单用户模式(single),2-5各有不同。但是在userlinux(包括ubuntu)中2-5级别是毫无差别的。最后'S'级别是一个比较特殊的级别,他应该是先于其他级别运行的级别。(这一点有待考证)。这里说明一下,0-6级别的运行是互斥的,而不是叠加运行,也就是说如果进入(move into)4级别,不是指0-3都要运行,而只是完成4级别里所规定的服务。

稍微观的观察ubuntu运行级别的完成会发现,所有的运行服务的脚本存储在/etc/init.d/里面。而在/etc/中有rc'X'.d的文件夹,'X'代表0-6和X,也就对应了这8个启动级别,里面就都是指向/etc/init.d/里面运行服务的脚本的软连接(symbol link),会发现,软连接的数目少于运行脚本数,这就是说不是所有服务都要在一个级别中运行的。软连接的命名是有规则的:[K|S][0-90-9][">name],K代表kill,S代表start,后面是个二位数,最后是对应的运行服务的脚本文件名。这个名字是在运行相应的脚本的时候传递的参数,K是传递stop(就是关闭服务),S是传递start(就是启动服务)。

运行顺序:K小数->K大数->S小数->S大数。这里注意文件夹里的所有软连接都会被执行,不论K或者S。

这里补充一下,多数的linux都是用一种叫System V的机制来启动运行级别(好像是串行的,慢?),而ubuntu是用的另一种机制叫startup(好像是并行的,快?),所以没有那个inittab文件改默认运行级别。ubuntu9.10前好像还能兼容inittab,但是9.10开始就不行了,而且9.10里面设置默认运行级别的文件都和ubuntu之前的版本不同。ubuntu 9.10 的默认运行级别文件是这个/etc/init/rc-sysinit.conf的14行。

如果想要删除某个运行级别所要运行的服务,可以把相应rcX.d文件夹里的软连接名字的第一个字母小写(这个是debian的文章推荐的做法,也是bum的做法),也可以删除这个软连接(这个是sysv-rc-conf的做法)。当然自己也可以写好脚本然后创建软连接,就可以添加服务了。

时间: 2024-07-28 16:13:06

ubuntu的启动级别(runlevel)分析的相关文章

Ubuntu系统设置默认的启动级别

系统默认启动级别在文件/etc/inittab,变量initdefault中设置.当被设置为3时,系统以文本模式启动: 当被设置为5时,系统将会以图形界面模式启动.这里是此文件的一部分(删除你不需要的initdefault行): # Default runlevel. The runlevels used by RHS are:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, wit

Linux理论06:Linux的启动级别

本文介绍Linux的启动级别,属于基础性理论. 启动级别 执行如下命令. 123456789101112 $ cat /etc/inittab# (...)# Default runlevel. The runlevels used are:# 0 - halt (Do NOT set initdefault to this)# 1 - Single user mode# 2 - Multiuser, without NFS (The same as 3, if you do not have

安装双系统ubuntu无法启动问题

问题描述 安装双系统ubuntu无法启动问题 我本来是win7系统在系统最后一区安装了ubuntu可是,安装ubuntu14.04时候提示grub rescue> 无法启动ubuntu系统ls是只能显示为(hd0)(hd0,nsdos7)(hd0,nsdos5)(hd0,nsdos1) set时显示ubuntu安装路径为(hd0,nsdos8) 这个问题如何才能处理,如何才可以正常启动. 解决方案 建议使用虚拟机安装双系统,这个可以参考一下:http://jingyan.baidu.com/ar

win7中制作ubuntu 1210启动盘

  问题: 桌面系统为WIN7旗舰版,使用如下工具制作ubuntu 1210启动盘: 1. Universal USB Installer 1.9.3.0; 2. Lili USB Creator 2.8.19; 制作完成后,拿到PC机上修改BIOS选项为U盘第一启动顺序; 但是,到了显示启动界面的地方就停住了,键盘的Num Lock还受控,说明没有死机; 怀疑过ISO文件的可靠性,重新下载了ISO文件,比对MD5正确. 怀疑过U盘的可靠性,使用原先能用来启动安装Ubuntu 1004的U盘来制

修改linux系统默认启动级别

  修改系统启动级别:修改系统默认启动到3 多用户状态,在Linux中有7种启动级别,默认是X-Window,像是Windows的窗口模式,而Linux的操作和配置一般我们都采用输入命令的方式来完成,像DOS操作系统一样,如何让Linux一启动就进入这种模式呢? 第1步:以管理员身份进入Linux,修改文件:/etc/inittab文件. 第2步:找到"id:5:initdefault:",其中的5就是X-Window,为默认运行级别,我们把5改为3即可. # 0 - halt (Do

启动级别:init 0,1,2,3,4,5,6

启动级别:init 0,1,2,3,4,5,6 2010-10-29 15:47:50|  分类:linux之路阅读376 评论0  字号:大中小 订阅 这是个很久的知识点了,只是自己一直都迷迷糊糊的,今天在翻出来好好理解下.. 0:停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system 3:完全多用户 5:图形化 4:安全模式 6:重启  其实,可以通过查看/etc/rc.d/中的rc*.d的文件来对比理解.. init 0,对应的系统会运行,/etc/r

ubuntu中启动tomcat,显示404或者503

问题描述 ubuntu中启动tomcat,显示404或者503 apache-tomcat-6.0.44 Jul 29, 2015 2:32:15 AM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found

《深入理解OSGi:Equinox原理、应用与最佳实践》一3.3 启动级别

3.3 启动级别 开发人员可以使用代码来启动.停止某些Bundle,用户也可以在Equinox控制台中完成这项工作.但是从OSGi系统整体来看,各个模块的启动和停止顺序不应当由代码或人工完成,尤其是在Bundle数量很多时,OSGi框架提供一种全局的控制Bundle启动.停止的方案就显得更有必要了.OSGi规范定义了"启动级别"来满足这个需求,对于熟悉Linux系统的读者,对比下文的介绍就会发现,OSGi中的启动级别和Linux系统的启动级别非常相似. 启动级别是一个非负的整数,值为0

在 Mac OS X 系统中创建用于 Mac 的 Ubuntu USB 启动盘

在 Mac OS X 系统中创建用于 Mac 的 Ubuntu USB 启动盘 上个月,在戴尔的服务中心丢失我的笔记本后,我买了一台 Macbook Air 笔记本.买回来后我首先做的一些事就是给机器装上双系统,使 Ubuntu Linux 和 Mac OS X 都可用.随后的文章我会介绍如何在 Macbook 上安装 Linux ,刚开始我们需要学习 如何在 Mac OS X 系统中创建用于 Mac 的 Ubuntu USB 启动盘. 在 Ubuntu 系统或 Windows 系统中创建可启动