偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

敘述Ubuntu upstart進程管理

系統(tǒng) Linux
為了對原有的init實現(xiàn)向后兼容,Ubuntu upstart可以說是在表象上保留了大部分原來init的特性,因而目前l(fā)inux初始化進程名仍然叫init,而改變的核心,乃是Event機制。

在向大家詳細介紹Ubuntu upstart之前,首先讓大家了解下ubuntu,然后全面介紹Ubuntu upstart,希望對大家有用。Ubuntu系統(tǒng)的特性,并結(jié)合應(yīng)用實例進行講解,引導(dǎo)讀者較快地掌握Ubuntu系統(tǒng)。ubuntu從6.10開始逐步用Ubuntu upstart代替原來的sysinit,進行服務(wù)進程的管理。也正是從6.10開始,ubuntu的啟動過程開始變得有點“變幻莫測”。也沒辦法,這是正在開發(fā)中的Ubuntu upstart不可避免的。

為了對原有的init實現(xiàn)向后兼容,Ubuntu upstart可以說是在表象上保留了大部分原來init的特性,因而目前l(fā)inux初始化進程名仍然叫init,而改變的核心,乃是Event機制。理解并講清楚這個改變的重要意義和內(nèi)在機理可不是件容易的事,所以我只打算研究一下目前 Ubuntu upstart(0.3.9, ubuntu 8.04)在系統(tǒng)啟動中的表象行為。[注:據(jù)Scott James Remnant在其博客上所說,Ubuntu upstart 0.5.0版本將在未來幾周發(fā)布。

關(guān)于系統(tǒng)啟動,熟悉Linux的人大多應(yīng)該知道,init進程(PID=1)乃是所有進程的父進程,所有進程由它控制。init進程的運行時間是內(nèi)核完成文件系統(tǒng)的加載后。那么init進程是如何開啟系統(tǒng)中的其它進程的呢?在闡述這個問題之前,大致地說明一下目前ubuntu中與init相關(guān)的幾個目錄和應(yīng)用程序,可以方便后面的論述。這些目錄和程序包括:

init
telinit
runlevel
/etc/event.d/ /etc/init.d/ /etc/rcX.d/

前三個是應(yīng)用程序(注意哦,它們都不是shell腳本),可以理解為是由內(nèi)核調(diào)用的。關(guān)于它們的功能,從manpage查看就可以了。我們的重點是后面給出的三個目錄。

首先是/etc/event.d/目錄,這是Ubuntu upstart的核心,Ubuntu upstart不同于原有的init的地方就在于它引入了event機制。Event 機制通俗的講就是將所有進程的觸發(fā)、停止等等都看作event(事件)。/etc/event.d/中就存放了目前Ubuntu upstart需要識別的event。這其中主要有三種rc-default, rcX(x=0,1,...6,S。sysv-rc-conf這個工具里就顯示了0,1,...6,S這幾個級別)以及ttyX。這rc-default 就類似于那大名鼎鼎的inittab文件,它就是設(shè)置默認運行級別的 [注:Ubuntu upstart中實際并沒有運行級別的概念,這么稱呼是為了init向后的兼容性]?,F(xiàn)在你應(yīng)該知道了ubuntu里沒有了inittab文件后該到哪里設(shè)置默認運行級別的了吧!cat rc-default一下吧!rcX文件是發(fā)生相應(yīng)運行級別事件(可以注意到event這個詞在Ubuntu upstart里真是無處不見啊)時,需要運行程序的腳本,而ttyX則是設(shè)置偽終端數(shù)目的,也就是你Ctrl+Alt+F(1~6)調(diào)出的那個Console。我們以rc2為例,cat rc2:

start on runlevel 2
stop on runlevel [!2]
console output
script
set $(runlevel --set 2 || true)
if [ "$1" != "unknown" ]; then
PREVLEVEL=$1
RUNLEVEL=$2
export PREVLEVEL RUNLEVEL
fi
exec /etc/init.d/rc 2
end script

不去考慮細節(jié),只要注意到前兩行和倒數(shù)第二行就可以了??梢钥吹?,rc2文件是定義在發(fā)生運行級別2的時候所要執(zhí)行的東西,核心就是這句:exec /etc/init.d/rc 2。這樣,我們就可以自然地過渡到下一個重要的目錄,/etc/init.d/了。

你可以ls /etc/init.d/看一下里面的內(nèi)容,對它有個大致的了解。/etc/init.d/中存放的是服務(wù)(services)或者任務(wù)(tasks)的執(zhí)行腳本。可以這么說,只要你安裝了一個程序(特別是服務(wù)程序daemon),它可以在系統(tǒng)啟動的時候運行,那么它必定會在/etc/init.d/中有一個腳本文件。我們還回到上面的rc2文件,它執(zhí)行了一個exec /etc/init.d/rc 2的命令。也就是說,給/etc/init.d/rc腳本傳遞了一個參數(shù)"2",讓它執(zhí)行。我們仔細查看一下rc腳本(很長,耐心點),能看到這樣的一段:

# Now run the START scripts for this runlevel.
# Run all scripts with the same level in parallel
for s in /etc/rc$runlevel.d/S*

這說明,當給rc腳本傳遞一個數(shù)字參數(shù)"X"的時候,它在經(jīng)過一系列的設(shè)置后,將會開始執(zhí)行/etc/rcX.d/下S開頭的腳本。這就過渡到下一個目錄/etc/rcX.d/了。

進入/etc/rcX.d/,ls -l /etc/rcX.d/看看有些什么內(nèi)容?哈哈,沒錯,都是一些到/etc/init.d/中腳本的符號鏈接。不同的是它們的開頭加上了S和一個數(shù)字。熟悉原本init的人應(yīng)該知道,S表示在啟動時運行,數(shù)字則表示執(zhí)行的先后順序。

這樣一來,Ubuntu upstart管理的ubuntu啟動過程應(yīng)該就清楚了。梳理一下:1,內(nèi)核啟動init 2,init找到/etc/event.d/rc-default文件,確定默認的運行級別(X) 3,觸發(fā)相應(yīng)的runlevel事件,開始運行/etc/event.d/rcX 4,rcX運行/etc/init.d/rc,傳入?yún)?shù)X 5,/etc/init.d/rc腳本進行一系列設(shè)置,***運行相應(yīng)的/etc/rcX.d/中的腳本6,/etc/rcX.d/中的腳本按事先設(shè)定的優(yōu)先級依次啟動,直至***給出登錄畫面(啟動X服務(wù)器和GDM)

理解了這些,手動配置開機服務(wù)的啟動與否就很簡單了。Ubutnu默認的啟動級別是2,不想啟動的程序,只要把相應(yīng)的符號鏈接從/etc/rc2.d/中刪去即可!

【編輯推薦】

  1. 淺析詳解Ubuntu 9.10新版本發(fā)布
  2. 概括論述Ubuntu操作系統(tǒng)推出軟件的產(chǎn)品
  3. 閑扯詳解Ubuntu國際開發(fā)程序Bug
  4. 全面概括Ubuntu Linux系統(tǒng)部分應(yīng)用
  5. 解決LINUX Ubuntu安裝問題
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

2016-08-23 09:18:33

UpstartUbuntuSystemd

2009-12-31 14:27:22

UBUNTU Orac

2010-03-15 10:19:53

Linux 分區(qū)

2010-01-05 13:11:04

Ubuntu進程管理

2010-03-16 15:53:47

Ubuntu Linu

2010-03-15 14:19:29

Ubuntu Linu

2010-03-15 16:16:41

Ubuntu 8.04

2010-03-15 13:26:28

Ubuntu 8.10

2010-03-15 13:35:07

Ubuntu 8.10

2009-09-09 16:53:53

LINQ查詢語法

2009-10-23 16:15:41

2009-07-08 11:37:32

Servlet API

2010-02-25 10:28:43

Linux進程管理

2023-03-05 16:12:41

Linux進程線程

2011-01-11 13:47:27

Linux管理進程

2023-03-02 23:50:36

Linux進程管理

2011-10-14 09:30:27

Ubuntu發(fā)布進程

2023-03-03 00:03:07

Linux進程管理

2011-05-30 10:32:11

光纖拉絲張力

2009-08-26 15:16:29

C# lock關(guān)鍵字
點贊
收藏

51CTO技術(shù)棧公眾號