進程inittab的解析

init的進程號是1,從這一點就能看出,init進程是系統全部進程的起點,Linux在完成核內引導之後,就開始運行init程序,。init程序
須要讀取配置文件/etc/inittab。inittab是一個不可執行的文本文件,它有若干行指令所組成。在Redhat系統中,inittab的內容以下所示(以「###"開始的中註釋爲筆者增長的):
  #
  # inittab       This file describes how the INIT process should set up
  #               the system in a certain run-level.
  #
  # Author:       Miquel van Smoorenburg, 〈[email]miquels@drinkel.nl.mugnet.org[/email]〉  #               Modified for RHS Linux by Marc Ewing and Donnie Barnes  #  # Default runlevel. The runlevels used by RHS are:  #   0 - halt (Do NOT set initdefault to this)  #   1 - Single user mode  #   2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)  #   3 - Full multiuser mode  #   4 - unused  #   5 - X11  #   6 - reboot (Do NOT set initdefault to this)  #  ###表示當前缺省運行級別爲5(initdefault);  id:5:initdefault:  ###啓動時自動執行/etc/rc.d/rc.sysinit腳本(sysinit)  # System initialization.  si::sysinit:/etc/rc.d/rc.sysinit  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  ###當運行級別爲5時,以5爲參數運行/etc/rc.d/rc腳本,init將等待其返回(wait)  l5:5:wait:/etc/rc.d/rc 5  l6:6:wait:/etc/rc.d/rc 6  ###在啓動過程當中容許按CTRL-ALT-DELETE重啓系統  # Trap CTRL-ALT-DELETE  ca::ctrlaltdel:/sbin/shutdown -t3 -r now  # When our UPS tells us power has failed, assume we have a few minutes  # of power left.  Schedule a shutdown for 2 minutes from now.  # This does, of course, assume you have powerd installed and your  # UPS connected and working correctly.  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"  ###在二、三、四、5級別上以ttyX爲參數執行/sbin/mingetty程序,打開ttyX終端用於用戶登陸,  ###若是進程退出則再次運行mingetty程序(respawn)  # Run gettys in standard runlevels  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)  # Run xdm in runlevel 5  x:5:respawn:/etc/X11/prefdm -nodaemon  以上面的inittab文件爲例,來講明一下inittab的格式。其中以#開始的行是註釋行,除了註釋行以外,每一行都有如下格式:   id:runlevel:action:process  對上面各項的詳細解釋以下:  1. id  id是指入口標識符,它是一個字符串,對於getty或mingetty等其餘login程序項,要求id與tty的編號相同,不然getty程序將不能正常工做。  2. runlevel  runlevel是init所處於的運行級別的標識,通常使用0-6以及S或s。0、一、6運行級別被系統保留:其中0做爲shutdown動做,1做爲重啓至單用戶模式,6爲重啓;S和s意義相同,表示單用戶模式,且無需inittab文件,所以也不在inittab中出現,實際上,進入單用戶模式時,init直接在控制檯(/dev/console)上運行/sbin/sulogin。在通常的系統實現中,都使用了二、三、四、5幾個級別,在Redhat系統中,2表示無NFS支持的多用戶模式,3表示徹底多用戶模式(也是最經常使用的級別),4保留給用戶自定義,5表示XDM圖形登陸方式。7-9級別也是可使用的,傳統的Unix系統沒有定義這幾個級別。runlevel能夠是並列的多個值,以匹配多個運行級別,對大多數action來講,僅當runlevel與當前運行級別匹配成功纔會執行。  3. action  action是描述其後的process的運行方式的。action可取的值包括:initdefault、sysinit、boot、bootwait等:  initdefault是一個特殊的action值,用於標識缺省的啓動級別;當init由核心激活之後,它將讀取inittab中的initdefault項,取得其中的runlevel,並做爲當前的運行級別。若是沒有inittab文件,或者其中沒有initdefault項,init將在控制檯上請求輸入runlevel。  sysinit、boot、bootwait等action將在系統啓動時無條件運行,而忽略其中的runlevel。  其他的action(不含initdefault)都與某個runlevel相關。各個action的定義在inittab的man手冊中有詳細的描述。  4. process  process爲具體的執行程序。程序後面能夠帶參數。?dm - ? display manager,即xx圖形界面顯示管理器,它將使您能夠在啓動時直接進入 X 環境,而勿需經過 startx 來啓動 X。gdm - GNOME display managerkdm - KDE display managerxdm - X display manager目前,gdm 應該是功能最好、界面最漂亮的一個。
相關文章
相關標籤/搜索