2015-11-19 65 views

回答

1

一般在舊的SysVinit系統啓動順序和關機順序是由符號鏈接位於每個級別目錄/etc/init.d(或/etc/rc.d/)在你的init腳本的字母數字順序控制其中的鏈接編號S##(啓動)在啓動過程中運行,在關機期間運行K##(終止/停止)腳本。在任何特定時間點可用的服務都由引導或關閉過程中運行的內容來控制。例如一個較早的SUSE方案是:

/etc/init.d/ 
    boot.d/ 
    rc0.d/ # runlevel 0 
    rc1.d/ # runlevel 1 
    rc2.d/ # runlevel 2 
    rc3.d/ # runlevel 3 
     ... 
     S01random   # S## - Start init script ## in order 00 -> XX 
     S01resmgr 
     S02consolekit 
     S03haldaemon 
     S05network   # network start 
     ... 
     K01stopblktrace  # KXX - Kill (stop) init script ## in order 
     K02atieventsd 
     K09cron 
     ... 
     K14sshd 
     K15smbfs 
     K16apcupsd 
     K16auditd 
     K16nmb 
     K16portmap 
     K16splash_early 
     K17syslog 
     K18network   # network shutdown 
     ... 
    rc4.d/ 
    rc5.d/ 
    rc6.d/ 
    rcS.d/ 

如果你看一下開機/關機順序運行級別的3/etc/init.d/rc3.d/你看到網絡啓動和關機是由S05network在引導和K18network上控制關掉。因此,如果您想在網絡關閉之前創建一個在關機時運行curl的自定義腳本,則需要創建一個init腳本並在/etc/init.d/rc3.d中創建一個軟鏈接,並在網絡服務之前編號(ssh等)被撤下。在上面,如果您創建了編號爲kill kill腳本的軟鏈接K10curlonsd(關閉時爲curl),它將在cron關閉後運行,但在任何網絡服務被取消之前運行。

雖然您的/etc/init.d可能是/etc/rc.d等,但該方案在centos上應該仍然是一樣的,但一般方法將是相同的。如果您有任何問題,請告訴我。