天天看點

/etc/inittab

<b>/etc/inittab</b>

Label:Runlevel:Action:Process

·    <b>label       </b>1~4個字元的标簽,用來标示輸入的值。一些系統隻支援2個字元的标簽。是以多數人都将标簽字元的個數限制在2個以内。該标簽可以是任意字元構成的字元串,但實際上,某些特定的标簽是常用的,在Red Hat Linux中使用的标簽是:

1)id  用來定義預設的init運作的級别 

2)si  是系統初始化的程序 

3)ln  其中的n從1~6,指明該程序可以使用的runlevel 的級别 

4)ud  是更新程序 

5)ca  指明當按下Ctrl+Alt+Del 時運作的程序 

6)pf  指當UPS斷電時運作的程序 

7)pr  是在系統真正關閉之前,UPS發出電源恢複的信号時需要運作的程序 

8)x   是将系統轉入X終端時需要運作的程序 

·    <b>runlevel </b>字段指定runlevel的級别。可以指定多個runlevel級别,也可以不為runlevel字段指定特定的值。

·    <b>action     </b>字段定義了該程序應該運作在何種狀态下:

9) boot             系統引導程序中,程序運作,init将忽略運作等級這段 

10)bootwait         系統引導過程中,程序運作,init将等待程序結束.忽略runlevel 

11)ctrlaltdel       當Ctrl+Alt+Del三個鍵同時按下時運作,把SIGINT信号發送給init。忽略 runlevel 

12)initdefault      不要執行這個程序,它用于設定預設runlevel 

13)kbrequest       當init從鍵盤中收到信号時運作。這裡要求鍵盤組合符合KeyBoardSigral(參見/usr/share/doc/kbd-*關于鍵盤組合的文檔) 

14)off              不采取任何行動,功能相當于将這行用#注釋掉 

15)once             每一個runlevel級别隻運作一次 

16)ondemand      當系統指定特定的運作級别A、B、C時運作 

17)powerfail        當init收到SIGPWR信号時運作 

18)powerokwait      當收到SIGPWD信号且/etc/檔案中的電源狀态包含OK時運作,一般當電源故障修複時運作 

19)powerwait        當收到SIGPWD信号,并且init等待程序結束時運作,一般為電源故障時運作 

20)respawn          隻要程序一停止,該程序就重新啟動 

21)sysinit          隻要系統引導,該程序便運作,優先于boot與bootwait 

22)wait           程序隻運作一次,init将一直等待它結束,再執行其它指令 

·    <b>process </b> 字段包含init執行的程序,該程序采用的格式與在指令行下運作該程序的格式一樣,是以process字段都以該程序的名字開頭,緊跟着是運作時要傳遞給該程序的參數。

[root@rhel5 ~]$ cat /etc/inittab                                         

#表示目前預設運作級别為3(initdefault)                                           

id:3:initdefault:                                                    

#系統初始化                                                   

#/etc/rc.d/rc.sysinit主要是完成一些系統初始化的工作,rc.sysinit是每一個運作級别都要首先運作的重要腳本。          

#主要完成的工作有:激活交換分區,檢查磁盤,加載硬體子產品以及其它一些需要優先執行任務。              

si::sysinit:/etc/rc.d/rc.sysinit                                                 

#當運作級别為n時,以n為參數運作/etc/rc.d/rc腳本,init将等待其傳回(wait)                             

l0:0:wait:/etc/rc.d/rc 0                                                 

l1:1:wait:/etc/rc.d/rc 1                                                 

l2:2:wait:/etc/rc.d/rc 2                                                 

l3:3:wait:/etc/rc.d/rc 3                                                 

l4:4:wait:/etc/rc.d/rc 4                                                 

l5:5:wait:/etc/rc.d/rc 5                                                 

l6:6:wait:/etc/rc.d/rc 6                                                 

#在啟動過程中允許按CTRL-ALT-DELETE重新開機系統                                    

ca::ctrlaltdel:/sbin/shutdown -t3 -r now                                         

#Power Failure; System Shutting Down                                         

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"                      

#If power was restored before the shutdown kicked in, cancel it.                             

pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"                      

#在2345級别上以ttyX為參數執行/sbin/mingetty程式,打開ttyX終端用于使用者登入,如果程序退出則重新開機mingetty程式(respawn)  

1:2345:respawn:/sbin/mingetty tty1                                           

2:2345:respawn:/sbin/mingetty tty2                                           

3:2345:respawn:/sbin/mingetty tty3                                           

4:2345:respawn:/sbin/mingetty tty4                                           

5:2345:respawn:/sbin/mingetty tty5                                           

6:2345:respawn:/sbin/mingetty tty6                                           

#在5級别上運作xdm程式,提供xdm圖形方式登入界面,并在退出時重新執行(respawn)                       

x:5:respawn:/etc/X11/prefdm -nodaemon                                        

respawn選項:當一種守護程序死亡的時候将自動重新開機守護程序

方法:将可執行檔案的名稱放入/etc/inittab檔案中,并添加respawn選項,隻要系統保持在同一個運作級别上,init就會在系統進入一個運作級别時啟動該守護程序,然後監視并確定該守護程序保持運作狀态(如果發現其死亡,則自動重新開機該守護程序)

[root@rhel5 rc3.d]# cat /etc/inittab | grep respawn 

1:2345:respawn:/sbin/mingettytty1 

2:2345:respawn:/sbin/mingetty tty2 

3:2345:respawn:/sbin/mingettytty3 

4:2345:respawn:/sbin/mingettytty4 

5:2345:respawn:/sbin/mingetty tty5 

6:2345:respawn:/sbin/mingetty tty6 

x:5:respawn:/etc/X11/prefdm -nodaemon 

sn:2345:respawn:/usr/local/scripts/start_snmpd&gt; /dev/null 

[root@rhel5 rc3.d]# cat /usr/local/scripts/start_snmpd 

#! bin/bash 

exec /usr/sbin/snmpd -s -p /var/run/snmpd -l /dev/null  

==========================================================

<b>chkconfig     </b>主要用來更新和查詢系統服務的運作級資訊,隻是簡單的改變了符号連接配接(立即自動禁止或激活一個服務).

用法:

chkconfig --list [name]

chkconfig --add &lt;name&gt;       "chkconfig確定每個運作級有一項啟動(S)或者殺死(K)入口,如有缺少,則會從預設的init腳本自動建立"

chkconfig --del &lt;name&gt; "删除服務,并把相關符号連接配接從 /etc/rc[0-6].d 删除"

chkconfig [--level &lt;levels&gt;] &lt;name&gt; &lt;on|off|reset|resetpriorities&gt;

如何增加一個服務:

1)vi /etc/init.d/servicename                     "服務腳本必須存放在/etc/ini.d/目錄下"

2)chkconfig --add servicename                "在chkconfig工具服務清單中增加此服務,此時服務即會在/etc/rc.d/rcN.d中賦予K/S入口"

3)chkconfig --level 2345  servicename on "修改服務的預設啟動等級"

      本文轉自Vnimos51CTO部落格,原文連結:http://blog.51cto.com/vnimos/1042711,如需轉載請自行聯系原作者