欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

centos啟動流程及實現(xiàn)service管理apache服務(wù)

centos啟動流程及實現(xiàn)service管理apache服務(wù)

Cenots6如何啟動,它的啟動流程是怎樣?

  1. 系統(tǒng)加電,Power ---up /Reset

    創(chuàng)新互聯(lián):于2013年創(chuàng)立為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為1000+公司企業(yè)提供了專業(yè)的網(wǎng)站設(shè)計制作、網(wǎng)站制作、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需網(wǎng)站制作由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

  2. system startup --- BIOS/bootmonitor

  3. stage 1 bootloader --- Master Boot Record

  4. stage 2 bootloader --- Grub,LILO,etc.(其中Grub將stage2分為1.5和2)

  5. kernel --- linux    內(nèi)核空間

  6. init --- user-sapce 用戶空間
    Operation

簡單過程:

  1. 系統(tǒng)首次引導或重啟時加電的瞬間處理器(cpu)執(zhí)行存在于BIOS中的一段已知代碼,而后選擇一個可引導設(shè)備,pc可用來做引導的設(shè)備多樣(靈活),BIOS需確定使用哪個設(shè)備來引導

  2. 將stage 1 的引導加載程序(bootloader)加載至RAM執(zhí)行.bootloader大小小于512Bytes(一個扇區(qū)sector),主要工作是加載stage 2 的引導加載程序

  3. stage2第二階bootloader加載至RAM執(zhí)行,通常屏幕有顯示動畫,將linux內(nèi)核壓縮形態(tài)映像和一個可選的初始RAM磁盤(initramfs臨時根文件系統(tǒng))加載至內(nèi)存.stage2 bootloader控制權(quán)交給內(nèi)核映像,解壓和初始化,此階段stage2 bootloader會檢測系統(tǒng)硬件,枚舉 系統(tǒng)鏈接的硬件設(shè)備,掛載根設(shè)備,加載內(nèi)核必要的modules內(nèi)核模塊.

  4. 啟動第一個用戶空間程序(init).執(zhí)行高級系統(tǒng)初始化工作.

細化理解:

1. BIOS/Bootmonitor

cpu加電瞬間自動尋找BISO存放位置,在此之前不依靠任何軟件純硬件執(zhí)行,開始執(zhí)行BISO的第一步加電自檢(POST):POST對硬件檢測,BIOS第二步本地設(shè)備枚舉和初始化.

BIOS有兩部分組成:POST代碼和運行時服務(wù).
                POST完成后從內(nèi)存清理出來;運行時服務(wù)依然存在于內(nèi)存,目標操作系統(tǒng)能夠繼續(xù)使用BIOS運行時服務(wù)所提供的服務(wù).

要引導一個操作系統(tǒng),BIOS運行時會依據(jù)CMOS的設(shè)置定義的順序來搜索處于激活狀態(tài)并可以引導的設(shè)備.可引導設(shè)備可以是軟盤、硬盤、CD-ROM、硬盤上的分區(qū)、網(wǎng)絡(luò)上的設(shè)備.
搜索到可引導的硬盤(通常是硬盤)后,主引導記錄(MBR)中包含主引導加載程序.(MBR是512Btyes的一個扇區(qū)(sector),位于磁盤的第一個扇區(qū)(0磁道0柱面1扇區(qū)))將MBR加載至RAM(Random Access Memory,隨機存儲器,與cpu直接交互數(shù)據(jù),速度快),BIOS將控制權(quán)交給MBR.

2. stage 1 bootloader:

MBR中的主引導加載程序(bootloader)是512Bytes的映像,其中包含bootloader程序代碼和一個分區(qū)表.前446Bytes是主引導加載程序--其中包含可執(zhí)行bootloader代碼和錯誤消息文本.接下來64Bytes是分區(qū)表,共包含4個分區(qū)記錄(每個分區(qū)64/4=16Bytes).MBR以2Bytes特殊字節(jié)(0xAA55)(magic number,魔數(shù),多用來檢測完整性)結(jié)束.用來檢測MBR的有效性.

    centos6 備份MBR的信息的方法:
        dd if=/dev/sda of=MBR.bak bs=1 conut=512
        od -xa MBR.bak 查看以十六進制和ASCII碼打印二進制文件

MBR中的主引導加載程序主要的工作是查找并加載次引導加載程序(即stage 2 bootloader),通過在分區(qū)表中查找一個激活分區(qū)后,掃描分區(qū)中的其他分區(qū)確保其他都是非活動的,此后將激活分區(qū)中的引導記錄從設(shè)備中加載至RAM并執(zhí)行.

3.stage 2 bootloader:

次引導加載程序可形象的稱為內(nèi)核加載程序.主要任務(wù)是加載linux kernel和可選的初始RAM磁盤.
   一般的pc機中,stage 1 bootloader和stage 2 bootloader統(tǒng)稱為GRand Unified Bootloader(GRUB)或Linux Loader(LILO).
       GRUB階段的引導加載程序:
           /boot/grub中包含了stage1,stage1.5,stage2引導加載程序,和其他引導加載程序及kernel,initramfs.

GRUB通過將兩個階段轉(zhuǎn)化為三個階段的引導加載程序?qū)崿F(xiàn)的.

stage 1:MBR引導了一個1.5階段的引導加載程序加載并運行(而不是直接將stage2中的次引導加載程序引導過來)
   stage 1.5:引導加載程序,可以理解包含Linux內(nèi)核映像的特殊文件系統(tǒng).(比如/boot/grub/e2fs_stage1_5要從ext2或ext3中加載)
   stage 2:等待stage1.5引導加載完成后stage2次引導加載器開始加載,完成之后,GRUB可以在接受請求的顯示內(nèi)核列表(在/etc/grub.conf中定義,軟符號鏈接/etc/grub/menu.lst和/etc/grub.conf),可以選擇內(nèi)核和修改內(nèi)核參數(shù).甚至可是使用Grub命令行提供的命令對引導過程進行手工定義啟動.

grub手工自定義:可以用initrd的映像引導一個kernel

        grub>root (hd0,0)            #定義可啟動的設(shè)備
        grub>kernel /vmlinuz          #定義啟動時的內(nèi)核
        grub>initrd /initramfs.img   #定義initramfs鏡像
        grub>boot                       #按照手工定義的方式啟動

將stage2的bootloader加載至內(nèi)存后,就可以對文件系統(tǒng)進行查詢,將默認的內(nèi)核映像和initrd映像加載至內(nèi)存中.當映像文件準備好之后,stage 2 bootloader調(diào)用內(nèi)核映像.

4.kernerl --- Linux

內(nèi)核映像被加載至內(nèi)存中,stage2 bootloader控制權(quán)釋放后,kernel 階段開始.內(nèi)核映像不是可執(zhí)行的內(nèi)核,是被壓縮的kernel映像,通常是vmlinuz.在這個內(nèi)核映像的前面是一個例程,實現(xiàn)少量的硬件設(shè)置,并從包含內(nèi)核的映像中將kernel解壓縮出來,而后將內(nèi)核加載至高端內(nèi)存中,如果有初始RAM磁盤映像,則將其一起加載至內(nèi)存,并標明供以后使用.此后,該例程會調(diào)用內(nèi)核,并開始啟動內(nèi)核引導的過程.
啟動init.即第一個用戶空間進程(user-sapce process).通過啟用中斷,搶占式的調(diào)度器就可以周期性的接管控制權(quán),從而提供多任務(wù)能力.
在內(nèi)核引導的過程中,初始RAM磁盤(initrd)是由stage 2 bootloader加載至內(nèi)存中,被復制到RAM中并掛載到系統(tǒng)上.initrd會作為RAM中的臨時根文件系統(tǒng)使用,允許內(nèi)核在沒有掛載任何物理磁盤的情況下完整的實現(xiàn)引導,由于與外圍設(shè)備交互的模塊可能是initrd的一部分,所以內(nèi)核可以很小,但仍需要支持大量的可能的硬件配置,內(nèi)核引導完成之后就可以將initrd根文件系統(tǒng)卸載掉,并掛載真正的文件系統(tǒng).

5.init階段

當內(nèi)核引導并初始化之后,內(nèi)核就可以啟動自己的第一個用戶空間應(yīng)用程序了,這是第一個調(diào)用標準函數(shù)庫編譯的程序.桌面系統(tǒng)中第一個啟動的程序通常是/sbin/init進程.到這里系統(tǒng)準備就緒了.

init在centos不同版本程序的類型:
centos5:SysV init
    配置文件:/etc/inittab
centos6:upstart
    配置文件:/etc/inittab
        /etc/init/*.conf
centos7:systemd
    配置文件:/usr/lib/systemd/system,/etc/systemd/system

init相關(guān)的配置文件:/etc/inittab

    每行定義一種action以及對應(yīng)的process
        id:runlevel:action:process
            id: 一個任務(wù)的標志符
            runlevel: 運行級別,空則標識所有的進程
            action:定義任務(wù)的啟動條件
            process:任務(wù)
        action:
            wait:等待切換至此級別是執(zhí)行一次
            respawn:一旦此任務(wù)終止,就自動重新啟動
            initdefualt:設(shè)定默認啟動級別
            sysinit:設(shè)定系統(tǒng)初始化的方式,此處一般指定/etc/rc.d/rc.sysinit

/etc/rc.d/rc 接受數(shù)字為參數(shù)

        K##string:開機停止  (先KILL后start)數(shù)字越小越優(yōu)先,依賴的服務(wù)先關(guān)閉,被依賴的后關(guān)閉
        S##string:開機啟動

/etc/init.d/

    讓程序接受chkconfig的管理
        chkconfig --add  services_name
    不再接受chkconfig管理
        chkconfig --del services_name
    能被cokconfig所識別
        #chkconfig: 運行級別  啟動級別  關(guān)閉級別
    chkconfig: 
        --list name  顯示單個的服務(wù)情況
    修改控制的級別:
        --level LEVELS   默認2345
        注:正常情況下,最后一個服務(wù)S99local沒有連接至/etc/init.d下,而是直接指向了/etc/rc.local下,因此自定義的開機啟動腳本直接放到/etc/rc.local中即可
    /sbin/mingetty 會調(diào)用login程序;
    打開基于vga的虛擬終端的還有g(shù)etty等也可以.

那么如何實現(xiàn)講一個自定義的程序或服務(wù)為chkconfig及service的支配.

以上次shell程序自動化編譯的apache service為例(腳本實現(xiàn)apache批量自動化編譯移步http://cityx.blog.51cto.com/9857477/1918435):
按照系統(tǒng)啟動的流程及chkconfig的特性實現(xiàn):

  1. 開機系統(tǒng)會運行/etc/init.d/下的腳本或程序,那么將自定義的腳本或程序放入該目錄下就可以開機時被執(zhí)行,當然將腳本的路徑加入到rc.local下開機時也會被執(zhí)行一般情況下值執(zhí)行一次,我們的需求是作為可控的服務(wù).

  2. 符合被chkconfig管理的服務(wù)腳本要求

     # chkconfig: 2345 11 88      #腳本中需存在的格式
     # description: This starts the Apache Daemon  #centos6 可省
    按照上面的思路:

    下面是我httpd服務(wù)(程序名為httpd)的腳本:將此腳本放入/etc/init.d下即可,留作下步用.

     #!/bin/bash
     #
     # chkconfig: 345 98 01
     #
     httpdir=/app/apache/httpd
     pidfile()
     {
         pgrep  httpd > /app/apache/httpd/httpd.pid
     }
     VarVerification()
     {
         if [ -z $httpdir ] ;then
                     httpdir=/app/apache/httpd
         fi
     }
     case $1 in 
     start)
         VarVerification
         $httpdir/bin/apachectl start 1>/dev/null 2>$httpdir/start.log 
         if [ $? -eq 0 ] ;then
                if [ -d  /app/apache/httpd ] ;then
                  pidfile
                else 
                  echo "The file 'httpd.pid' is  not exist!"
                  exit 10
                fi
             else 
                  exit 11
         fi
         ;;
     stop)
         VarVerification
         if [ -f $httpdir/httpd.pid ];then
             $httpdir/bin/apachectl  stop
             if [ $? -eq 0 ] ;then
                  mv $httpdir/httpd.pid /tmp &>/dev/null
             fi
         else 
             pgrep httpd &>/dev/null 
             if [ $? -eq 0 ];then
                 $httpdir/bin/apachectl  stop 
             fi
         fi
         ;;
     restart)
         VarVerification
         $httpdir/bin/apachectl restart
         if [ $? -eq 0 ] ;then
             pidfile
         else    
             mv $httpdir/httpd.pid /tmp
         fi
         ;;
     status)
         VarVerification
         if [ -f $httpdir/httpd.pid ];then
             echo  "Apache service is running..."
         else 
             echo "Apache service is DOWN!"
         fi
     esac
    有了上面的腳本,幷放置于/etc/init.d下,執(zhí)行:
     [root init.d]# chkconfig --add httpd   #接受chkconfig的支配
                    chkconfig --del httpd   #不再接受chkconfig的支配
                    chkconifg --level 2345 httpd on  #指定2345模式下開機自啟動
     [root init.d]# service httpd start     #啟動apache服務(wù)
    驗證一下效果80端口已啟動:
     [root init.d]# netstat -ntl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State            
    tcp        0      0 :::80                       :::*                        LISTEN
     [root init.d]# service httpd {stop|start|restart|status} 停止,啟動,重啟,狀態(tài)

名稱欄目:centos啟動流程及實現(xiàn)service管理apache服務(wù)
當前路徑:http://chinadenli.net/article38/jgipsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、微信公眾號、企業(yè)建站、定制網(wǎng)站、營銷型網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
老司机精品福利视频在线播放| 日韩精品中文在线观看| 亚洲男人的天堂就去爱| 亚洲国产成人精品一区刚刚| 自拍偷女厕所拍偷区亚洲综合| 日韩中文字幕狠狠人妻| 日韩精品一区二区亚洲| 国产一区二区三区丝袜不卡 | 日本午夜福利视频免费观看| 色偷偷亚洲女人天堂观看| 少妇人妻无一区二区三区| 日韩人妻av中文字幕| 国产欧美日韩在线一区二区| 欧美人禽色视频免费看| 欧美日韩亚洲精品内裤| 开心五月激情综合婷婷色| 日韩在线免费看中文字幕| 亚洲精品黄色片中文字幕| 国产99久久精品果冻传媒| 亚洲欧洲在线一区二区三区| 精品国产亚洲av久一区二区三区| 日本中文在线不卡视频| 麻豆国产精品一区二区| 内射精品欧美一区二区三区久久久| 国产亚洲二区精品美女久久 | 日韩精品福利在线观看| 国产一区二区三区午夜精品| 91日韩在线观看你懂的| 91人妻人人澡人人人人精品| 午夜午夜精品一区二区| 欧美午夜国产在线观看| 91欧美亚洲视频在线| 国产一区国产二区在线视频| 久久黄片免费播放大全| 人妻巨大乳一二三区麻豆| 亚洲国产精品久久网午夜| 日本福利写真在线观看| 日韩欧美黄色一级视频| 欧美日韩国产一级91| 欧美日韩高清不卡在线播放| 超薄肉色丝袜脚一区二区|