国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩


嵌入式linux int進(jìn)程詳解

分享到:
           

    init是Linux系統(tǒng)開發(fā)執(zhí)行的第一個進(jìn)程,進(jìn)程ID為1,是系統(tǒng)所有進(jìn)程的起點,主要用來執(zhí)行一些開機(jī)初始化腳本和監(jiān)視進(jìn)程。Linux系統(tǒng)在完成核內(nèi)引導(dǎo)以后就開始運行init程序,init程序需要讀取配置文件/etc/inittab。inittab是一個不可執(zhí)行的文本文件,它由若干行命令所組成。在RHEL 4系統(tǒng)中,inittab配置文件的內(nèi)容如下所示。

    #
    # inittab     This file describes how the INIT process should set up
    #           the system in a certain run-level.
    #
    # Author:     Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
    #           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 have networking)
    #   3 - Full multiuser mode
    #   4 - unused
    #   5 - X11
    #   6 - reboot (Do NOT set initdefault to this)
    #
    //表示當(dāng)前缺省運行級別為5,啟動系統(tǒng)進(jìn)入圖形化界面
    id:5:initdefault:
    //啟動時自動執(zhí)行/etc/rc.d/rc.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
    //當(dāng)運行級別為5時,以5為參數(shù)運行/etc/rc.d/rc腳本,init將等待其返回
    l5:5:wait:/etc/rc.d/rc 5
    l6:6:wait:/etc/rc.d/rc 6
    //在啟動過程中允許按[CTRL+ALT+DELETE]重啟系統(tǒng)
    # 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"
    //在運行級別2、3、4、5上以ttyX為參數(shù)執(zhí)行/sbin/mingetty程序,打開ttyX終端用于用戶登錄,如果進(jìn)程退出則再次運行mingetty程序
    # 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圖形方式登錄界面,并在退出時重新執(zhí)行
    # Run xdm in runlevel 5
    x:5:respawn:/etc/X11/prefdm -nodaemon

    inittab配置文件每行的基本格式如下。

    id:runlevels:action:process

    其中某些部分可以為空,下面我們逐一介紹。

    1.id
    1~2個字符,配置行的惟一標(biāo)識,在配置文件中不能重復(fù)。

    2.runlevels
    配置行適用的運行級別,在這里可填入多個運行級別,比如12345或者35等。

    Linux有7個運行級別。
    ● 0:關(guān)機(jī)。
    ● 1:單用戶字符界面。
    ● 2:不具備網(wǎng)絡(luò)文件系統(tǒng)(NFS)功能的多用戶字符界面。
    ● 3:具有網(wǎng)絡(luò)功能的多用戶字符界面。
    ● 4:保留不用。
    ● 5:具有網(wǎng)絡(luò)功能的圖形用戶界面。
    ● 6:重新啟動系統(tǒng)。

    3.a(chǎn)ction

    Init有如下幾種行為,如表1.1所示。

                表1.1                     init行為

行   為 描   述
respawn 啟動并監(jiān)視第4項指定的process,若process終止則重啟它
wait 執(zhí)行第4項指定的process,并等待它執(zhí)行完備
once 執(zhí)行第4項指定的process
boot 不論在哪個執(zhí)行等級,系統(tǒng)啟動時都會運行第4項指定的process
bootwait 不論在哪個執(zhí)行等級,系統(tǒng)啟動時都會運行第4項指定的process,且一直等它執(zhí)行完備
off 關(guān)閉任何動作,相當(dāng)于忽略該配置行
ondemand 進(jìn)入ondemand執(zhí)行等級時,執(zhí)行第4項指定的process
initdefault 系統(tǒng)啟動后進(jìn)入的執(zhí)行等級,該行不需要指定process
sysinit 不論在哪個執(zhí)行等級,系統(tǒng)會在執(zhí)行boot及bootwait之前執(zhí)行第4項指定的process
powerwait 當(dāng)系統(tǒng)的供電不足時執(zhí)行第4項指定的process,且一直等它執(zhí)行完備
powerokwait 當(dāng)系統(tǒng)的供電恢復(fù)正常時執(zhí)行第4項指定的process,且一直等它執(zhí)行完備
powerfailnow 當(dāng)系統(tǒng)的供電嚴(yán)重不足時執(zhí)行第4項指定的process
ctrlaltdel 當(dāng)用戶按下【Ctrl+Alt+Del】時執(zhí)行的操作
kbrequest 當(dāng)用戶按下特殊的組合鍵時執(zhí)行第4項指定的process,此組合鍵需在keymaps文件定義

    4.process

    process為init執(zhí)行的進(jìn)程,這些進(jìn)程都保存在目錄/etc/rc.d/rcX中,其中的X代表運行級別,rc程序接收X參數(shù),然后運行/etc/rc.d/rc.X下面的程序。使用如下命令可以查看/etc/rc.d目錄內(nèi)容。

    #ls -l /etc/rc.d/
    總用量 112
    drwxr-xr-x 2 root root 4096 3月 15 14:44 init.d
    -rwxr-xr-x 1 root root 2352 2004-03-17 rc
    drwxr-xr-x 2 root root 4096 3月 15 17:42 rc0.d
    drwxr-xr-x 2 root root 4096 3月 15 17:42 rc1.d
    drwxr-xr-x 2 root root 4096 3月 15 17:42 rc2.d
    drwxr-xr-x 2 root root 4096 3月 15 17:42 rc3.d
    drwxr-xr-x 2 root root 4096 3月 15 17:42 rc4.d
    drwxr-xr-x 2 root root 4096 3月 15 17:42 rc5.d
    drwxr-xr-x 2 root root 4096 3月 15 17:42 rc6.d
    -rwxr-xr-x 1 root root 220 2003-06-24 rc.local
    -rwxr-xr-x 1 root root 27411 2005-08-03 rc.sysinit

    使用如下命令查看/etc/rc.d/rc5.d的內(nèi)容。

    # ls -l /etc/rc.d/rc5.d
    總用量 432
    lrwxrwxrwx 1 root root 21 4月 29 15:11 K01tog-pegasus -> ../init.d/tog-pegasus
    lrwxrwxrwx 1 root root 24 4月 29 14:20 K02NetworkManager -> ../init.d/NetworkManager
    lrwxrwxrwx 1 root root 17 4月 29 15:29 K02oddjobd -> ../init.d/oddjobd
    lrwxrwxrwx 1 root root 14 4月 29 15:31 K05innd -> ../init.d/innd
    lrwxrwxrwx 1 root root 19 4月 29 14:17 K05saslauthd -> ../init.d/saslauthd
    lrwxrwxrwx 1 root root 19 4月 29 14:21 K10dc_server -> ../init.d/dc_server
    lrwxrwxrwx 1 root root 16 4月 29 14:21 S09pcmcia -> ../init.d/pcmcia
    lrwxrwxrwx 1 root root 17 4月 29 14:17 S10network -> ../init.d/network
    lrwxrwxrwx 1 root root 16 4月 29 14:17 S12syslog -> ../init.d/syslog

    這些文件都是符號鏈接,以S打頭的標(biāo)識啟動該程序,而以K打頭的標(biāo)識終止該程序,后面的數(shù)字標(biāo)識執(zhí)行順序,越小越先執(zhí)行,剩下的標(biāo)識程序名。系統(tǒng)啟動或者切換到該運行級別時會執(zhí)行以S打頭的程序,系統(tǒng)切換到該運行級別時會執(zhí)行以K打頭的程序。

    這個目錄下的程序可通過chkconfig程序進(jìn)行管理,當(dāng)然這個目錄下的程序需要符合一定規(guī)范,如果了解shell編程,可以查看這些符號鏈接所指向的程序的源碼。

    init也是一個進(jìn)程,和普通的進(jìn)程具有一樣的屬性。比如修改了/etc/inittab,想讓修改馬上生效,可通過運行“kill -SIGHUP 1”來實現(xiàn),也可通過運行“init q”來實現(xiàn)。

華清遠(yuǎn)見嵌入式linux視頻教程免費下載

   熱點鏈接:

   1、嵌入式linux驅(qū)動要學(xué)哪些
   2、嵌入式Linux串口編程基礎(chǔ)
   3、嵌入式Linux內(nèi)核如何編譯
   4、Linux內(nèi)核模塊程序結(jié)構(gòu)
   5、典型嵌入式Linux系統(tǒng)設(shè)置

更多新聞>>