Ubuntu10.10,ubuntu11.04开机服务启动优化 基于事件的启动方式

news/2024/7/23 16:29:02

ubuntu10.10以后,启动方式改成了基于事件的启动方式,Upstart,代替以往的init.d/rcX.d的线性启动方式,采用事件的并行,并发执行,有

助于加快启动速度。

Upstart init daemon 是基于事件的,当系统中的什么情况发生变化时,它会运行某个特定的程序.这里被运行的程序多半是用来启动或终止服务的脚本.这个配置方式和systemv 在系统进入某个运行级别的时候运行init脚本的链接的概念实际上是非常类似的,只不过 upstart 更加灵活一些.Upstart 不仅能在运行级别改变的时候启动或终止服务,也能在接收到系统发生其他改变的信息的时候启动或终止服务.这些系统的改变被称为“事件”.例如,当 upstart 从 udev 接收到运行时文件系统加载、打印机安装或其他类似的设备添加或删除的信息,并采取相应的行动.Upstart 也可以在系统启动、关闭或某个任务状态改变的时候启动或关闭服务.

有几个名词帮助我们理解 init 相关的东西.事件(event)是 init 可以得到的状态变更信息.几乎系统所有的内部或外部状态变更都可以触发一个事件.比如,引导程序会触发启动(startup)事件,系统进入运行级别2会触发运行级别2(runlevel 2)事件,而文件系统加载则会触发路径加载(path-mounted)事件,拔掉或安装一个热插拔或USB设备(如打印机)也会触发一个时间.用户还可以通过 initctl emit 命令来手动触发一个事件.

一个工作(job)是 init 可以理解的一系列指令.典型的指令包括一个程序(二进制文件或是脚本)和事件的名称.Upstart init daemon 会在事件触发的时候运行相应的程序.用户可以分别用 initctl start 和 stop 命令手动启动或终止一项工作.工作又可以分为任务和服务.

任务是运行、并在执行结束后返回到等待状态的工作.

服务是那些通常不会自己结束的工作.比如,logd daemon 和 gettys 就被实现为服务.init daemon 会监测每个服务的状态,如果服务出现问题会重启服务,在某些事件触发时或手工停止时会杀死服务.

使用 initctl (init control) 工具,具有 root 权限的管理员可以和 Upstart init daemon 通信.这个工具可以用来启动、停止或报告(report)一项工作. 比如,initctl list 命令会列出所有的工作和它们的状态:

现在,即使你将rcX.d下的文件去爱不删除,都不影响ubuntu的启动,服务的启动依赖于/etc/init/下的每个服务对应的配置文件,通过修改这

配置文件,可以更改服务的运行级别。


http://www.niftyadmin.cn/n/1598486.html

相关文章

navicat连接sqlserver数据库提示:未发现数据源名称并且未指定默认驱动程序

原因是navicat没有找到电脑安装的sqlserver驱动,那么咱们进行安装即可,找到navicat的安装目录下的sqlncli.msi(32位)或sqlncli_x64.msi(64位)的,根据系统版本选择安装 双击开始安装,一直下一步,…

SQLServer中进行sql除法运算,结果<1结果显示为0的解决方案

SELECT field1/field2 FROM test; 当 field1的数值< field2的数值时&#xff0c;除法得出的结果是<1的&#xff0c;即0.xxxxxx 这个时候在sqlserver的环境下SELECT出来的值是0 解決方法&#xff1a; 先把field1转换成float类型的&#xff0c;这样计算出来的就会得出小…

Linux进程间的通信,信号量的使用,生产者消费者

这是简单的生产者消费者问题&#xff0c;只有一个缓冲区 #include<stdio.h> #include<unistd.h> #include<sys/types.h> #include<linux/sem.h> struct sembuf buf; int Psem(int sem_id); int Vsem(int sem_id); int cache; int main() { union semun…

sqlserver中保留几位小数的方法

一开始通过round函数&#xff0c;但是这个并没有达到想要的效果&#xff0c;因为它会把有效数字后面的数变为0进行显示。 数据库里的 float momey 类型&#xff0c;都会精确到多位小数。但多数时候我们不需要那么精确&#xff0c;最常用的就是只精确到两位有效数字。 解决&am…

Linux0.11内核--启动代码分析setup.s 建立页目录和页表

head.s开始 pg_dir .... .... .... .... .org 0x1000 pg0: .org 0x2000 pg1: .org 0x3000 pg2: .org 0x4000 pg3: .org 0x5000 后面是setup_paging代码 setup_paging: movl $1024*5,%ecx /* 5 pages - pg_dir4 page tables */ xorl %eax,%eax xorl %edi,%edi /* pg_d…

ajax跨域解决方案:jsonp方式

jsonp 只支持get请求不支持post请求 用法说明&#xff1a; ①dataType改为jsonp ②jsonp : "jsonpCallback"————发送到后端实际为http://a.a.com/a/FromServlet?userName644064&jsonpCallbackjQueryxxx ③后端获取get请求中的jsonpCallback …

servlet 复习

1.servlet介绍 java servlet 是一种使用java编写的CGI的程序 CGI&#xff1a;通用网关接口。其与传统CGI优势&#xff1a;多线程&#xff0c;性能高&#xff1b; 使用out.println() 显示html servlet本身也是java类&#xff0c;所以必须存放在WEB-INF/classes jsp功能与servle…

kettle脚本中打印日志的方法

通过查看Api,我们已经知道了具体的方法,主要有两种方式 通过LogChannelFactory工厂构造LogChannel对象,然后调用相应的日志方法进行输出直接构造LogChannel方法,调用方法日志输出 两种方式都可以&#xff0c;先来看第一种 var subject"自定义日志输出"; //实例化工…