日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu init启动流程分析浅析

發(fā)布時(shí)間:2025/5/22 Ubuntu 155 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu init启动流程分析浅析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ? ? ? ?Ubuntu init啟動(dòng)流程

Linux distros主流的有兩種init方式

一種是System V initialization,它來源于Unix并至今仍被各種Linux distros所采用;

一種是近幾年提出的Upstart方式,基于事件機(jī)制,系統(tǒng)的所有服務(wù),任務(wù)都是由事件驅(qū)動(dòng)的。

采用后一種方式的目前有UbuntuFedoraDebian

Ubuntu由于采用 Upstart方式,它上面是沒有inittab這個(gè)文件的。在舊式的System V initialization中,/etc/inittab可是個(gè)相當(dāng)重要文件。Init進(jìn)程啟動(dòng)后第一時(shí)間找的就是它! Upstart job是事件驅(qū)動(dòng)的,系統(tǒng)服務(wù)的啟動(dòng)、停止等等均是由事件決定的,反過來,系統(tǒng)服務(wù)的啟動(dòng)、停止也可以作為事件源觸發(fā)其他服務(wù)。并且事件并不一定得由系統(tǒng)內(nèi)部產(chǎn)生,用戶可以手工的鍵入start/stop [Service]產(chǎn)生事件來啟動(dòng)/終止服務(wù)。run level也被當(dāng)作事件來對(duì)待(因runlevel的改變而產(chǎn)生的事件)。那么系統(tǒng)服務(wù)又是如何知道自己應(yīng)該什么時(shí)候啟動(dòng),什么時(shí)候終止的呢?答案就在于/etc /init中,它里面均是系統(tǒng)服務(wù)的配置文件,是job definition files

  實(shí)際上并不僅僅在系統(tǒng)啟動(dòng)初期,在系統(tǒng)運(yùn)轉(zhuǎn)的任何時(shí)期都可以通過發(fā)送事件來啟動(dòng)或終止服務(wù)。這便是Upstart job的優(yōu)點(diǎn)之一,除了用于系統(tǒng)初始化,還可以在系統(tǒng)運(yùn)行階段發(fā)揮作用。相比之下System V initialization方式下的配置文件一般只用于系統(tǒng)初始化階段,當(dāng)然系統(tǒng)運(yùn)行階段我們可以通過/etc/init.d/Service start/stop/otherCommand來操作服務(wù),但很明顯不如Upstart方式簡潔明白。

  Ubuntu使用的是Upstart方式的initializationUbuntu采用的是兼容模式,即:系統(tǒng)中既有System V-style啟動(dòng)的服務(wù),也有Upstart啟動(dòng)的服務(wù)。以Ubuntu11.04,你可以看到系統(tǒng)中有這么幾個(gè)目錄:

/etc/init

/etc/init.d

/etc/rc${runlevel}.d

 進(jìn)入/etc/init目錄(Upstart init會(huì)到該目錄下讀取配置文件),有幾個(gè)和rc有關(guān)的配置文件:

rc.conf

rc-sysinit.conf

rcS.conf

  rc-sysinitstartup事件發(fā)生時(shí)被啟動(dòng),rc在系統(tǒng)runlevel變化時(shí)被啟動(dòng),rcS在系統(tǒng)runlevelS時(shí)啟動(dòng)

  rc-sysinitstartup事件發(fā)生時(shí)被啟動(dòng),Upstart init會(huì)首先讀取rc-sysinit.conf并執(zhí)行相關(guān)配置和腳本。rc-sysinit.conf的主要工作是設(shè)置系統(tǒng)默認(rèn)runlevel,檢測是否存在/etc/inittab或內(nèi)核命令行,若存在,則按內(nèi)核命令行>/etc/inittab>默認(rèn)runlevel的順序設(shè)置系統(tǒng) runlevel。最后,調(diào)用telinit進(jìn)入設(shè)置的runlevel

由于系統(tǒng)的默認(rèn)runlevel發(fā)生了變化, 由于調(diào)用了telinit進(jìn)入了設(shè)定的runlevelrunlevel改變的事件發(fā)生,此時(shí)rc服務(wù)啟動(dòng)(當(dāng)然其他服務(wù)也會(huì))。打開rc.conf文件,查看最后一行:

exec /etc/init.d/rc $RUNLEVEL

  很明顯,/etc/init.d/rc被調(diào)用了,并且傳入了早前設(shè)置好的系統(tǒng)runlevel作為參數(shù)。而/etc/init.d/rc會(huì)根據(jù)傳入 的runlevel參數(shù)調(diào)用/etc/rc${runlevel}.d/下的腳本(以S開頭)以啟動(dòng)服務(wù)。在/etc/rc${runlevel}.d/下,發(fā)現(xiàn)里面的文件都是到/etc /init.d/下對(duì)應(yīng)的腳本/程序的軟鏈接。以S開頭的為啟動(dòng)的意思,以K開頭的為停止。并且S/K后面的兩位數(shù)數(shù)字代表了服務(wù)的啟動(dòng)順序(由服務(wù)依賴關(guān)系決定)。凡是以S開頭的就是本次要啟動(dòng)服務(wù),凡是以k開頭的,就是要在本次runlevel啟動(dòng)的時(shí)候要終止掉的服務(wù)。

整體 Init啟動(dòng)總結(jié):

1.內(nèi)核啟動(dòng)init進(jìn)程。

2.init找到/etc/init/rc-sysinit.conf文件,確定默認(rèn)的運(yùn)行級(jí)別(假設(shè)為X)

3.觸發(fā)相應(yīng)的runlevel事件,開始運(yùn)行/etc/rc.conf

4.傳遞參數(shù),運(yùn)行/etc/init.d/rc,傳入?yún)?shù)X,并且最后調(diào)用/etc/rc${runlevel}.d

5./etc/rc${runlevel}.d中根據(jù)ks來進(jìn)行執(zhí)行或者終止軟鏈接所對(duì)應(yīng)的/etc/init.d/服務(wù)

6. 最后按照事先設(shè)定的優(yōu)先級(jí)依次啟動(dòng),直至最后給出登錄畫面

  常規(guī)中,默認(rèn)安裝Linux會(huì)直接到圖形界面。Ubuntu安裝后默認(rèn)的run level2,這個(gè)可以用runlevel命令查看。因?yàn)?/font>runlevel=2,所以在啟動(dòng)過程中自動(dòng)執(zhí)行/etc/rc2.d/目錄下的以S開頭的腳 本。Ubuntu之所以能直接啟動(dòng)到圖形界面,是由于運(yùn)行gdm所致。所以,只要把gdm的啟動(dòng)腳本禁用就可以了,方法就是把文件名的第一個(gè)字母S改成 K

一般的linux8個(gè)級(jí)別:0-6和一個(gè)'S'級(jí)別。

# 對(duì)各個(gè)運(yùn)行級(jí)的詳細(xì)解釋:

0 為停機(jī),機(jī)器關(guān)閉。

1 為單用戶模式,就像Win9x下的安全模式類似。

2 為多用戶模式,但是沒有NFS支持。

3 為完整的多用戶模式,是標(biāo)準(zhǔn)的運(yùn)行級(jí)。

4 一般不用,在一些特殊情況下可以用它來做一些事情。例如在筆記本電腦的電池用盡時(shí),可以切換到這個(gè)模式來做一些設(shè)置。

5 就是X11,進(jìn)到X Window系統(tǒng)了。

6 為重啟,運(yùn)行init 6機(jī)器就會(huì)重啟。

'S'級(jí)別是一個(gè)比較特殊的級(jí)別,他應(yīng)該是先于其他級(jí)別運(yùn)行的級(jí)別。

userlinux(包括ubuntu)2-5級(jí)別是毫無差別的。

這里說明一下,0-6級(jí)別的運(yùn)行是互斥的,而不是疊加運(yùn)行,

所有的運(yùn)行服務(wù)的腳本存儲(chǔ)在/etc/init.d/里面。而在/etc/中有rc'X'.d的文件夾,'X'代表0-6X,也就對(duì)應(yīng)了這8個(gè)啟動(dòng)級(jí)別,里面就都是指向/etc/init.d/里面運(yùn)行服務(wù)的腳本的軟連接(symbol link),軟連接的數(shù)目少于運(yùn)行腳本數(shù),這就是說不是所有服務(wù)都要在一個(gè)級(jí)別中運(yùn)行的。軟連接的命名是有規(guī)則的:[K|S][0-90-9][name]K代表killS代表start,后面是個(gè)二位數(shù),最后是對(duì)應(yīng)的運(yùn)行服務(wù)的腳本文件名。這個(gè)名字是在運(yùn)行相應(yīng)的腳本的時(shí)候傳遞的參數(shù),K是傳遞stop(就是關(guān)閉服務(wù)),S是傳遞start(就是啟動(dòng)服務(wù))

運(yùn)行順序:K小數(shù)->K大數(shù)->S小數(shù)->S大數(shù)。這里注意文件夾里的所有軟連接都會(huì)被執(zhí)行,不論K或者S

?

轉(zhuǎn)載于:https://blog.51cto.com/computerdragon/1119244

總結(jié)

以上是生活随笔為你收集整理的Ubuntu init启动流程分析浅析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 学生孕妇videosex性欧美 | 欧美精品一区三区 | 欧美日韩一区二区三区 | 亚洲国产精品国自产拍久久 | 日韩在线视频一区二区三区 | 日韩精品在线观看一区 | 欧美日韩视频网站 | 午夜天堂在线观看 | 精品一区二区三区无码视频 | 天天综合一区 | asian性开放少妇pics | 尤物网站在线 | 欧美亚洲国产成人 | 天天射美女 | 国产不卡视频一区二区三区 | 久久久久久久久99精品 | 久久久久久久久久免费视频 | 天天综合天天色 | 亚洲综合第一 | 欧美色偷偷 | 九热精品视频 | 中文一二区 | 日韩性生交大片免费看 | 黄瓜视频在线免费看 | 亚洲理论在线观看 | 欧美www视频 | 一本色道久久88综合日韩精品 | www.久久成人 | 成人在线免费视频播放 | va在线观看 | 国产天堂网 | 久久精品69 | 国产精品剧情一区 | 欧美一级二级三级视频 | 亚洲成人天堂 | 另类毛片 | 国产高清黄色 | 91在线无精精品入口 | 欧美精品一区二区免费看 | 免费无码毛片一区二三区 | 9191国产精品 | 国产精品一级二级 | 中文幕无线码中文字蜜桃 | 国产午夜精品免费一区二区三区视频 | 精品在线小视频 | 黄色理伦片| 麻豆毛片 | 快色在线观看 | а√天堂8资源中文在线 | 国产精品变态另类虐交 | 夜夜骚av一区二区三区 | 成人免费视频播放 | 国产精选第一页 | 在线观看视频一区 | 国产夫妇交换聚会群4p | 久久第一页 | 黄色特级毛片 | 在线视频第一页 | 波多野结衣a v在线 欧洲免费av | 国产你懂的| 国产免费叼嘿网站免费 | 成人深夜福利视频 | 国产孕妇孕交大片孕 | 国产毛片aaa| 爱久久视频 | 淫五月天| 99色精品 | 中文字幕欧美专区 | 国产人妻精品一区二区三 | 偷偷操不一样的99 | 国产欧美一区二区精品忘忧草 | 扒下小娇妻的内裤打屁股 | 国产精品无码一区二区三区免费 | 激情a| 中文字幕欧美视频 | www.在线观看视频 | 欧美中文 | 一级黄色免费看 | 老妇女性较大毛片 | 久久影院中文字幕 | а√天堂www在线天堂小说 | 日本成人在线一区 | 国模人体一区二区 | 日本丰满少妇做爰爽爽 | 国产乱人乱精一区二视频国产精品 | 久久久无码人妻精品无码 | 国产综合第一页 | 亚洲成人久久久 | av噜噜在线 | 小小姑娘电影大全免费播放 | 伊人艹 | 国产精品一级片在线观看 | 久久九九国产精品 | 国产在线精品成人欧美 | 深夜福利国产 | www.日本精品 | 黄色视屏在线 | 高跟鞋肉丝交足91 | 日韩亚洲欧美在线观看 |