FreeBSD系統啟動指令碼(轉)
核心探測過系統硬體之後,就啟動程式0和程式1,程式0用於清除記憶體,將所有的記憶體單元置零,程式1為init 程式,將負責啟動系統和各種守護程式。init將系統帶入多使用者狀態,並按照/etc/rc啟動指令碼啟動服務程式。
/etc/rc啟動指令碼將完成很多非常重要的工作,包括設定磁碟交換、檢查磁碟錯誤、設定網路介面,啟動網路服務程式等非常重要的工作。/etc/rc檔案將也將執行另外的rc檔案,如執行rc.conf用於大部分系統引數的設定,rc.network用於網路設定,rc.firewall用於設定防火牆,以及rc.local,用於管理員對本機特定的啟動設定等。其中rc.conf檔案中包含了使用者能夠更改的很多設定引數,這些設定引數在其他rc檔案中使用,用於配置系統的引數,因此對系統管理來講最為重要。
由於大部分伺服器程式都是網路程式,因此如果系統的網路設定不正確,這些服務程式將不能正常執行(例如 sendmail)。而且有些程式的超時設定的很長,因此出現錯誤時會出現系統停留在某個程式上不再繼續執行。一般可以不必理會,等待程式超時退出即可,或者可以嘗試使用Ctrl-C中斷該程式。如果啟動指令碼真的出現無法繼續執行的錯誤,如果能夠透過網路登入,可以先登入進系統再更改啟動指令碼,而大部分正在執行啟動指令碼的情況下,網路服務並沒有啟動,那麼就必須重新啟動系統進入單使用者狀態,再修改啟動指令碼來糾正錯誤。
#! /bin/sh
swapfile="NO" # Set to name of swapfile if aux swapfile desired.
apm_enable="NO" # Set to YES if you want APMenabled.
pccard_enable="NO" # Set to YES if you want to configure PCCARD devices.
pccard_mem="DEFAULT" # If pccard_enable=YES, this is card memory address.
pccard_ifconfig="NO" # Specialized pccard ethernet configuration (or NO).
local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d" # startup script dirs.
上面是/etc/rc.conf的部分內容,可以看出引數的設定形式,相應的設定值都給出了提示,使得更改這些引數設定非常容易。rc.onf中的大部分設定可以透過/stand/sysinstall系統安裝程式來進行設定,但也有部分引數不能透過sysinstall進行設定,必須透過手工修改這個檔案來完成。按照FreeBSD的習慣,這些rc檔案,rc.conf用於引數配置,可以由sysinstall安裝程式和管理員更改,rc.local中定義這臺計算機特定的啟動命令,可以由管理員重新設定,而其他rc檔案應該保留不變。這只是一種習慣做法,而非硬性規定,然而遵從習慣的好處是系統設定比較清晰,便於系統維護和管理,並且當管理員進入一個新系統中,能立即找到需要的配置檔案。
在版本3.1-release之前,/etc/rc.conf中包括了所有引數設定,這樣在系統長期執行之後,就無法區分哪個引數為預設值,哪個引數為管理員更改過的值。在3.1-release中,rc.conf劃分為兩個檔案,/etc/default/rc.conf和/etc/rc.conf,其中/etc/default/rc. conf是設定各個引數的系統預設值,而/etc/rc.conf僅僅設定本地系統在安裝和執行過程中更改的引數,例如hostname等,因此3.1-release之後的/etc/rc.conf檔案中的內容較少。事實上 /etc/default/rc.conf中不但設定了讀取/etc/rc.conf檔案中的設定,還包括讀取 /etc/rc.conf.local檔案的設定,以適應更復雜的計算機設定情況。對於一般的情況,用不到那麼複雜的設定檔案,僅僅注意/etc/rc.conf中的設定就滿足設定要求了。
BSD Unix傳統上只使用rc.local來維護本機特定的啟動命令,這樣如果系統在啟動時需要配置的內容過多,這個檔案就會變得相當龐大,不利於系統維護。Unix System V風格的系統使用啟動目錄而非檔案來維護啟動命令,每個啟動一個特定功能的設定被放入一個單獨指令碼中,然後將所有的指令碼都放入啟動目錄中,系統啟動時逐項檢查這個目錄中的執行指令碼,自動執行這些命令。
System V和BSD的啟動管理有很大不同,System V引入了啟動級別的概念,可以有6種不同的啟動級別,而BSD只簡單的分為多使用者狀態、單使用者狀態和停機狀態3種。在啟動的管理方面,System V比BSD更友好一些。
因此FreeBSD吸取System V中的啟動目錄的思想,在rc.conf中定義了本計算機的系統啟動檔案存放的目錄local_startup引數,預設使用/usr/local/etc/rc.d目錄存放伺服器程式的啟動指令碼,使用/usr/X11R6/etc/rc.d目錄存放本地X Window相關的程式啟動指令碼。這些目錄中的以sh結尾並具備執行屬性的shell指令碼程式將在啟動時被自動執行。這兩個目錄中的指令碼程式也是由系統管理員設定和修改的,必須以 “.sh” 結尾,其他字尾的檔案將被忽略。習慣上這兩個目錄裡的指令碼程式負責啟動伺服器程式,而 rc.local主要用於調整系統的一些非標準引數設定(rc.conf中沒有涉及的設定)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-944780/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- FreeBSD系統啟動過程(轉)
- Debian系統啟動指令碼(轉)指令碼
- Linux下XWindow系統啟動指令碼分析(轉)Linux指令碼
- linux系統軟體啟動sh指令碼Linux指令碼
- FreeBSD系統備份(轉)
- FreeBSD 升級系統(轉)
- FreeBSD 系統日誌(轉)
- Slackware啟動指令碼與System V啟動指令碼的區別何在?(轉)指令碼
- [ 轉載 ] HBASE啟動指令碼/Shell解析指令碼
- slackware啟動指令碼詳解(轉)指令碼
- FreeBSD配置系統時間(轉)
- FreeBSD建立檔案系統(轉)
- FreeBSD系統核心物件(轉)物件
- Oracle 10g RAC 系統 OS啟動時CRS及例項自動啟動指令碼Oracle 10g指令碼
- FreeBSD系統登入與退出(轉)
- FreeBSD調整系統設定(轉)
- FreeBSD安裝檔案系統(轉)
- FreeBSD的系統log日誌(轉)
- httpd啟動指令碼httpd指令碼
- FreeBSD系統日誌與備份(轉)
- FreeBSD網路檔案系統(NFS)(轉)NFS
- MacOS 啟動 -- Redis指令碼MacRedis指令碼
- Tomcat啟動指令碼Tomcat指令碼
- SQL Server啟動指令碼SQLServer指令碼
- ORACLE的啟動指令碼Oracle指令碼
- freebsd 下程式隨系統開機啟動的一種方法(GNU)薦
- Ubuntu自動啟動配置指令碼Ubuntu指令碼
- 網路卡自動啟動指令碼指令碼
- RedHat Linux下Oracle啟動指令碼的建立(轉)RedhatLinuxOracle指令碼
- Tomcat 7 啟動分析(一)啟動指令碼Tomcat指令碼
- android系統啟動之PMS啟動原始碼解析Android原始碼
- linux-啟動指令碼Linux指令碼
- Linux自啟動指令碼Linux指令碼
- UNIX下oracle啟動指令碼Oracle指令碼
- FreeBSD 系統的配置.
- linux系統和freebsd系統的安裝(一塊硬碟)(轉)Linux硬碟
- windows下oracle自動啟動指令碼WindowsOracle指令碼
- centos 自動啟動指令碼和自啟動服務CentOS指令碼