?? linux init詳解.htm
字號:
<!--本網頁文件由電子書制作工具“電子文檔處理器”未注冊版本的Txt2Html功能自動生成 -->
<!-- Made by an Unregistered version of eTextWizard V 1.98-->
<!--“電子文檔處理器”軟件作者: 馮國華 -->
<!--“電子文檔處理器”下載地址: http://www.etextwizard.com/download/ew/etextwizard.exe -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Linux init詳解</title>
<META NAME="keywords" CONTENT="電子文檔處理器,etextwizard,ebook maker">
<META NAME="description" CONTENT="電子文檔處理器是一款文檔格式轉換、文檔處理軟件集,批量電子書制作工具,幫助文件及技術資料的快速制作工具。網址:http://www.eTextWizard.com">
<meta name="GENERATOR" content="電子文檔處理器,etextwizard">
<style>
<!--
body { line-height: 20px}
td { line-height: 20px}
.Paragraph{ font-size: 9pt }
.9{ font-size: 9pt }
A:link {text-decoration: none; color:#0033CC}
A:visited {text-decoration: none; color: #0033CC}
A:active {text-decoration: none; color: #0000ff }
A:hover {text-decoration: underline; color: #FF0000 }
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="80%">
<tr>
<td width="80%" bgcolor="#000000">
<table border="0" cellspacing="1" width="100%" cellpadding="6" height="98">
<tr>
<td width="100%" bgcolor="#FFFFFD" height="20">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="49%"><p class="9"><font color="#FF0000"> </font></td>
<td width="51%"><p align="right" class="9"><a href="GRUB三步通.htm">上一頁</a> <a href="index.html">首頁</a> <a href="linux常用命令索引.htm">下一頁</a></td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#DFE0D1">
<td width="100%" height="21">
<p align="center"><strong>Linux init詳解</strong>
</td>
</tr>
<tr bgcolor="#F5F7EE">
<td width="100%" height="51" align=center>
<table><tr><td>
<p class="Paragraph">
我們一起在風雨中前行<br>
<br>
一、什么是INIT:<br>
init是Linux系統操作中不可缺少的程序之一。<br>
所謂的init進程,它是一個由內核啟動的用戶級進程。<br>
<br>
<br>
內核自行啟動(已經被載入內存,開始運行,并已初始化所有的設備驅動程序和數據結構等)之后,就通過啟動一個用戶級程序init的方式,完成引導進程。所以,init始終是第一個進程(其進程編號始終為1)。<br>
<br>
<br>
<br>
內核會在過去曾使用過init的幾個地方查找它,它的正確位置(對Linux系統來說)是/sbin/init。如果內核找不到init,它就會試著運行/bin/sh,如果運行失敗,系統的啟動也會失敗。<br>
<br>
二、運行級別<br>
那么,到底什么是運行級呢?<br>
簡單的說,運行級就是操作系統當前正在運行的功能級別。這個級別從1到6 ,具有不同的功能。<br>
不同的運行級定義如下:(可以參考Red Hat Linux 里面的/etc/inittab)<br>
# 0 - 停機(千萬不能把initdefault 設置為0 )<br>
# 1 - 單用戶模式<br>
# 2 - 多用戶,沒有 NFS<br>
# 3 - 完全多用戶模式(標準的運行級)<br>
# 4 - 沒有用到<br>
# 5 - X11 (xwindow)<br>
# 6 - 重新啟動 (千萬不要把initdefault 設置為6 )<br>
這些級別在/etc/inittab 文件里指定。這個文件是init 程序尋找的主要文件,最先運行的服務是放在/etc/rc.d<br>
目錄下的文件。在大多數的Linux 發行版本中,啟動腳本都是位于 /etc/rc.d/init.d中的。這些腳本被用ln 命令連接到 /etc/rc.d/rcn.d<br>
目錄。(這里的n 就是運行級0-6)<br>
三、運行級別的配置<br>
運行級別的配置是在/etc/inittab行內進行的,如下所示:<br>
12 : 2 : wait : / etc / init.d / rc 2<br>
第一個字段是一個任意指定的標簽;<br>
第二個字段表示這一行適用于運行那個級別(這里是2);<br>
<br>
<br>
第三個字 段表示進入運行級別時,init應該運行第四個字段內的命令一次,而且init應該等待該命令結束。/etc/init.d/rc命令運行啟動和終止輸入以便進入運行級別2時所需的任何命令。<br>
<br>
<br>
<br>
第四個字段中的命令執行設置運行級別時的一切“雜活”。它啟動已經沒有運行的服務,終止不應該再在新運行級別內運行的服務。根據Linux版本的不同,采用的具體命令也不同,而且運行級別的配置也是有差別的。<br>
<br>
init啟動時,它會在/etc/inittab內查找一個代碼行,這一行指定了默認的運行級別:<br>
id : 2 : initdefault :<br>
你可以要求init在啟動時,進入非默認運行級別,這是通過為內核指定一個“single”或“emergency”<br>
命令行參數來實現的。比如說,內核命令行參數的指定可通過LILO來執行。這樣一來,你就可以選擇單用戶模式了(即運行級別1)。<br>
系統正在運行時,telinit命令可更改運行級別。運行級別發生變化時, init 就會從/etc/inittab運行相應的命令。<br>
<br>
四、/etc/inittab中的特殊配置<br>
/etc/inittab中,有幾個特殊的特性,允許init重新激活特殊事件。這些特殊特性都是用第三個字段中的特殊關鍵字標記出來的。比如:<br>
<br>
1. powerwait<br>
允許init在電源被切斷時,關閉系統。其前提是具有U P S和監視U P S并通知init電源已被切斷的軟件。<br>
<br>
2. ctrlaltdel<br>
<br>
<br>
允許init在用戶于控制臺鍵盤上按下C t r l + A l t + D e l組合鍵時,重新啟動系統。注意,如果該系統放在一個公共場所,系統管理員可將C<br>
t r l + A l t + D e l組合鍵配置為別的行為,比如忽略等。<br>
3. sysinit<br>
系統啟動時準備運行的命令。比如說,這個命令將清除/tmp。<br>
上面列出的特殊關鍵字尚不完整。其他的關鍵字及其使用詳情,可參考你的inittab手冊頁。<br>
五、在單用戶模式下引導<br>
<br>
<br>
一個重要的運行級別就是單用戶模式(運行級別1),該模式中,只有一個系統管理員使用特定的機器,而且盡可能少地運行系統服務,其中包含登錄。單用戶模式對少數管理任務(比如在/usr分區上運行fsck)而言,是很有必要的,因為這需要卸載分區,但這是不可能的,除非所有的服務系統已被殺死。<br>
<br>
<br>
<br>
一個正在運行的系統可以進入單用戶模式,具體做法是利用init,請求運行級別1。內核啟動時,在內核命令行指定single或emergency關鍵字,就可進入運行級別1了。內核同時也為init指定命令行,<br>
init從關鍵字得知自己不應該采用默認的運行級別(內核命令行的輸入方式和你啟動系統的方式有關)。<br>
<br>
<br>
有時,以單用戶模式進行啟動是必要的,這樣一來,用戶在裝入分區之前,或至少在裝入分散的/usr分區之前,能手工運行fsck(在分散的文件系統上,任何活動都可能使其更為分散,所以應該盡可能地運行fsck)。<br>
<br>
如果自動化的fsck在啟動時失敗了,啟動腳本init的運行將自動進入單用戶模式。這樣做是為了防止系統使用不連貫的文件系統,這個文件系統是f<br>
s c k不能自動修復的。文件系統不連貫的現象極為少見,而且通常會導致硬盤的不連貫或實驗性的內核釋放,但最好能做到防患于未然。<br>
由于安全上的考慮,在單用戶模式下,啟動外殼腳本之前,配置得當的系統會要求用戶提供root密碼。否則,它會簡單地為L<br>
I L O輸入合適的一行代碼,以r o o t的身份登錄(當然,如果/etc/passwd已經由于文件系統的問題而不連貫了,就不適合這里的原則了,為對付這種情況,你最好隨時準備一張啟動盤)。<br>
<br>
不同的運行級有不同的用處,也應該根據自己的不同情形來設置。<br>
例如,如果丟失了root口令,那么可以讓機器啟動進入單用戶狀態。在啟動后的 lilo 提示符下輸入:<br>
init=/bin/sh rw 使機器進入運行級1 ,并把 root 文件系統掛為讀寫。他會跳過所有系統認證,讓你可以使用passwd<br>
程序來改變root口令,然后啟動到一個新的運行級。<br>
<br>
<br>
<br>
<br>
</p></td></tr></table></td>
</tr>
<tr>
<td width="100%" bgcolor="#FFFFFD" height="20">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="49%"><p class="9"><font color="#FF0000"> </font></td>
<td width="51%"><p align="right" class="9"><a href="GRUB三步通.htm">上一頁</a> <a href="index.html">首頁</a> <a href="linux常用命令索引.htm">下一頁</a></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center></div>
</body>
</html>
<!-- Made by an Unregistered version of eTextWizard V 1.98-->
<!--本網頁文件由電子書制作工具“電子文檔處理器”未注冊版本的Txt2Html功能自動生成 -->
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -