<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> /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 <name> "chkconfig確定每個運作級有一項啟動(S)或者殺死(K)入口,如有缺少,則會從預設的init腳本自動建立"
chkconfig --del <name> "删除服務,并把相關符号連接配接從 /etc/rc[0-6].d 删除"
chkconfig [--level <levels>] <name> <on|off|reset|resetpriorities>
如何增加一個服務:
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,如需轉載請自行聯系原作者