原作者 | Scott James Remnant |
---|---|
開發者 | Canonical公司 |
首次发布 | 2006年8月24日 |
当前版本 |
|
源代码库 | |
编程语言 | C |
操作系统 | Linux |
类型 | 初始化守护进程 |
许可协议 | GPLv2 |
网站 | upstart |
Upstart是一个基于事件的init程式 ,用于替代传统的init(多种类Unix计算机操作系统启动时用于执行任务的程序)。它是由Canonical公司前雇员Scott James Remnant所写。
传统的init进程原本只负责在开机后将计算机带入正常运行状态,并且在正常关机前关闭服务。因此,它的设计是严格同步的,且会阻塞未来的任务,直到完成当前任务。因为受限于准备或清除函数,它的任务也是事先定义的。这使得它无法简洁地处理现代桌面计算机上的各种非启动任务,其中包括:
Upstart的事件驱动模型允许它以异步方式对生成的事件作出回应。[3]
Upstart是异步工作的;它在系统运行时监督服务,并且在开关机时启动和关闭任务和服务。
对sysvinit简单的过渡和完善的向后兼容是明确的设计目标;[4]因此,Upstart能运行未经修改的sysvinit脚本。因此,与大多数其他的init替代(除了systemd和OpenRC)不同,它们通常假设并要求彻底的过渡,以正常运行,且不支持新旧启动方法混合的环境。[5]
通过使用initctl输入自定义的单一事件,或整合更多更复杂事件的事件桥,Upstart允许扩展其事件模型。[6]默认情况下,Upstart包括接口(socket)、dbus、udev、文件及dconf事件桥;另外,可以有更多种桥(例如Mach端口桥,或devd(FreeBSD系统上)桥)。[7]
使用Upstart作为默认init系统的Linux发行版及其他基于Linux内核的操作系统:
支持或已在一定程度上支持Upstart,但弃用它作为默认init系统的Linux发行版:
|chapter=
被忽略 (帮助)
|chapter=
被忽略 (帮助)
|
|