Ubuntu從6.10開始逐步用Upstart()代替原來的SysVinit進行服務進程的管理。RHEL(CentOS)也都從版本6開始轉用Upstart代替以往的init.d/rcX.d的線性啟動方式。
SysVinit守護進程(sysvinit軟件包)是一個基於運行級別的系統,它使用運行級別(單用戶、多用戶以及其他更多級別)和鏈接(位於/etc /rc?.d目錄中,分別鏈接到/etc/init.d中的init腳本)來啟動和關閉系統服務。SysV啟動是線性、順序的。一個S20的服務必須要等待S19啟動完成才能啟動,如果一個啟動要花很多時間,那么后面的服務就算完全無關,也必須要等。
UpStart(Upstart init daemon)是基於事件的啟動系統,它使用事件來啟動和關閉系統服務。Upstart是是並行的,只要事件發生,服務可以並發啟動。這種方式無疑要優越得多,因為它可以充分利用現在計算機多核的特點,大大減少啟動所需的時間。
Upstart是基於事件的,當系統中的什么情況發生變化時,它會運行某個特定的程序。這里被運行的程序多半是用來啟動或終止服務的腳本。這個配置方式和System V在系統進入某個運行級別的時候運行init腳本的鏈接的概念實際上是非常類似的。只不過Upstart更加靈活一些,Upstart不僅能在運行級別改變的時候啟動或終止服務,也能在接收到系統發生其他改變的信息的時候啟動或終止服務。這些系統的改變被稱為“事件”。例如,當Upstart從udev接收到運行時文件系統加載、打印機安裝或其他類似的設備添加或刪除的信息,並采取相應的行動。Upstart也可以在系統啟動、關閉或某個任務狀態改變的時候啟動或關閉服務。