ubuntu upstart 的基本概念
来源:互联网 发布:c语言国际象棋棋盘 编辑:程序博客网 时间:2024/05/29 15:13
相信不少ubuntu的新手玩家都尝试过设置runlever进入字符模式但没有成功。当初年少无知,找不到解决问题的头绪,也没有解决问题的动力
今天重新审视这个问题,有了新知
首先,runlevel之类的东西是提供给init进程使用,包括init.d以及类似的有着一堆诡异名字的脚本,用于linux加载完成后启动服务
那么,问题就应该从init程序开始
问题来了,init已经不在是我们熟悉的那个init了,upstart是个什么鬼?
事实上,sysv 的 init程序由于其过于古旧,越来越无法适应多核以及面向一般用户的linux发行版,因此遭到废弃。Canonical公司的一名程序员写了init的升级版,upstart,理所自然地应用到了ubuntu上。
从man中,我们可以看到,upstart不在使用那一堆诡异的目录,而是清爽简介的/etc/init
那么该目录又有什么?
可以看到,该目录下是一堆以.conf格式命名的文件。这些文件可以看成init使用的bash脚本的升级版,具体的内容不去深究,即使不清楚具体语法的看下description基本都明白该脚本做了些什么。不得不说这是一个巨大的进步。
问题来了,既然init不在使用,但是很显然各种带d的daemon程序依然是由bash脚本启动的,那么这意味这upstart应该是对init兼容的。事实上,该目录下的rc.conf rcS.conf rc-sysinit.conf就是用来兼容init的,包括对runlevel的处理,以及启动脚本。
重官方提供的cookbook上可以看到,upstart相比init最大的进步在于从原始的按顺序执行脚本(主要是因为某些服务的运行需要其它服务的支持,因此脚本的运行必须是按照一定顺序的),变成了基于条件的、异步的、可并行的执行方式。即若满足了某些条件(比如热插拔硬件、某些脚本执行完毕等),则执行可以执行的脚本。通过这种方式,使得脚本的执行顺序控制变得简单(之前的控制顺序是由脚本名字决定的,意味值如果某个脚本发生了改变,会导致一系列脚本的改变);同时支持多核带来的性能提升;更重要的是可以支持硬件的热插拔。
但是upstart并不一定是未来init的代名词。systemd也是init的另一种解决方案,但是这个项目非常的激进,有别于linux的传统方式,使用了非常mac os风格的管理方式,招致批评的同时却提供了更好的用户体验。据说Ubuntu在不久的将来会抛弃自己的upstart选择systemd,但这又是另一个故事了。
- ubuntu upstart 的基本概念
- Ubuntu 的 upstart 启动
- Ubuntu的Upstart
- ubuntu的Upstart启动流程
- Ubuntu upstart job解析
- Upstart: Ubuntu 的基于事件的启动进程
- Upstart: Ubuntu 的基于事件的启动进程
- Upstart: Ubuntu 的基于事件的启动进程
- 坑爹的 socket /com/ubuntu/upstart: 拒绝连接
- ubuntu upstart启动流程分析
- upstart
- Upstart: Ubuntu 的基于事件的启动进程[转]
- Ubuntu下的服务管理:UpStart和chkconfig,或sys V init ?
- upstart 和ubuntu启动过程原理介绍
- upstart 和ubuntu启动过程原理介绍
- Upstart与ubuntu启动过程,简单原理
- ubuntu 和upstart启动过程研究
- Upstart与ubuntu启动过程,简单原理
- 网线制作的沉思
- 深度学习基础(七)Self-Taught Learning to Deep Networks
- IDF实验室之百密一疏凯撒加密
- Pascal's Triangle
- BZOJ 3594 [SCOI 2014] 方伯伯的玉米田 (DP,树状数组优化)
- ubuntu upstart 的基本概念
- poj 3264 Balanced Lineup ST表
- 在myeclipse中如何搭配extjs的开发环境
- D3D中D3DFVF_XYZ和D3DFVF_XYZRHW的区别
- Poj 3017 Cut the Sequence (DP,单调队列优化,数据结构优化)
- 软件三重门——业务功能,业务性能及业务智能
- 233
- 计算机视觉方面的代码集锦
- 动态规划小练习