Linux upstart啟動方式詳解

2022-03-29 22:09:15 字數 756 閱讀 8891

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也可以在系統啟動、關閉或某個任務狀態改變的時候啟動或關閉服務。

android activity啟動優化方法

最近做乙個專案,用的viewpage fragment 模式,由於載入的fragment比較多,加上布局複雜,每次跳轉activity的時候,總是會卡頓幾秒鐘,當然效能好的手機,情況會好很多,經過排查以及實驗,記錄下方法。一般初始化都會在oncreate 方法中,首先找出哪些控制項的初始化比較複雜,...

Android開機啟動Activity方法

步驟一 首先要有乙個用於開機啟動的activity,這裡以系統自己建立的最簡單的activity為例進行講解。public class boottestactivity extends activity 步驟二 我們要編寫乙個broadcastreceiver用以捕獲action boot comp...

WPF入門之Application啟動方式

不同的是 預設由兩部分組成 和 這有點類似於 asp.net webform,將定義和行為 相分離。類具體有以下功能 二.wpf應用程式的啟動 關於如何在visual studio中建立乙個 wpf應用程式 前面的文章中已經說過了。請參見wpf入門教程系列一 基礎。2 當然,如果你習慣了把啟動寫在 ...