Linux+nfs配置开机启动,linux NFS配置:NFS开机自动启用及其原理
這節我們講NFS開機自動啟動及其原理
NFS服務器端已經配置好了,但機器重啟以后我們還要重新開啟NFS服務。為了不這么麻煩,我們要讓NFS和portmap服務在開機時自動啟動,這樣就會避免出現mount clntudp_create: RPC: Program not registered這樣的錯誤了。
讓腳本在開機時自動運行需要對linux系統的啟動過程有所了解。我們知道系統加載內核以后運行的第一個程序就是init,所以它的PID永遠是1,你自己用top命令查看一下就知道了;而init程序首先就要讀取/etc/inittab文件,init程序就根據這個文件的內容按照順序創建進程。
我們打開這個文件,不去管以#開頭的注釋文字,共有7個部分:我們需要關注的是第一部分和第二部分。
Init程序首先讀取第一部分,確定shell的運行級別,這里的運行級別為3。Shell一共有7個運行級別,在/etc/inittab文件開頭的注釋部分對這7個運行級別做了詳細解釋,對shell運行不了解的話這可是要必看的。
然后init程序讀取第二部分,運行腳本/etc/rc.d/rc.sysinit,這個腳本主要包含有系統的初始化命令。
接著就要根據確定的shell運行級別來運行對應目錄里的腳本,以啟動相關服務。我的機器的運行級別是3,init就根據這個級別號運行/etc/rc.d/rc3.d目錄里的腳本。
其余幾個部分都是關于組合鍵、UPS電源等方面的內容,感興趣的話可以看一下。
說到這里我們知道了,init程序根據運行級別號來啟動/etc/rc.d目錄中對應目錄里的腳本,以啟動相關服務。這里是運行/etc/rc.d/rc3.d目錄里的腳本,如果運行級別為5,則運行/etc/rc.d/rc5.d目錄里的腳本。
我們來看一下/etc/rc.d目錄里的文件。
可以看到/etc/rc.d目錄里一共有3個普通文件和8個目錄文件。這8個目錄中init.d目錄是各種程序和腳本的存放目錄,而rc0.d到rc6.d這7個目錄里的文件都是init.d目錄里程序文件的鏈接文件,只是被賦于了相應的運行級別。來看一下/etc/rc.d/rc3.d目錄里的文件:
我們想要開機就啟動的NFS服務和portmap服務分別在圖片中第二列的第一行和最后一列的第三行,即K20nfs和S13portmap。
我們看到目錄里所有文件都是以K或S開頭,然后跟一個數字,然后才是文件名。這是什么意思?S即start,開啟服務,K即kill,關閉服務。系統確定運行級別以后,進入相應的rcN.d目錄,執行以S開頭的文件以啟用相關服務進程,而且是按照S后面的那個數字的順序依次執行;而更換運行級別時,會先執行以K開頭的腳本,再執行以S開頭的腳本,執行順序都是按照他們后面的數字的順序;退出系統時,就依次執行以K開頭的文件關閉相關服務。
那我們知道了,在級別為3的這個運行級別上,nfs服務沒有默認沒有隨開機而啟動,而portmap服務則隨開機而啟動,是被系統第13個啟用的服務;我們手動啟動nfs服務以后,在關機的時候nfs服務是第20個被關閉的服務。
這里有了一個疑問:這些服務的啟用和關閉順序是哪里限定的?答案是程序自身。我們可以打開portmap和nfs服務的腳本看一下,腳本路徑為/etc/rc.d/init.d/ portmap (nfs)。輸入命令:less? /etc/rc.d/init.d/ portmap (nfs)
如截圖所示,portmap服務在345三個級別上運行,啟用順序為第13,關閉順序為第87;nfs服務不在任何運行級別上啟用,啟用順序為第60,關閉順序為第20。(服務不在任何運行級別上啟用時,運行級別那個字段用-代替。)
很明顯,想要讓NFS服務自動啟用,就需要把相應級別對應的rcN.d目錄里的nfs服務由K狀態更改為S狀態。由于運行級別為2時,系統不運行NFS,我們只需要在3、4、5三個級別上讓NFS服務隨開機啟動。(級別4根本就沒有啟用,讓NFS服務在級別4上啟用不知道有什么用;只不過大家都這么說,我也就隨大流。)
怎么更改?系統提供了一個用起來很方便的方法:使用chkconfig命令。Chkconfig主要用來查詢和管理服務在不同運行級別上的啟用情況,需要注意的是:chkconfig命令并沒有更改程序腳本里的內容,只是更改了程序在rcN.d中的鏈接名稱的開頭字母,以此來確保其在相應運行級別上開啟或關閉。
輸入chkconfig命令,直接敲回車,可以明確看到它主有4種作用:
Chkconfig --list name? 列出指定服務的運行級別情況
Chkconfig--add name? 增加一個服務
Chkconfig --del name? 刪除一個服務
Chkconfig?? [--level ]? ? ? 更改/重設指定服務的運行級別
我們輸入chkconfig --level 345 nfs on,即可使NFS服務在運行級別3、4、5上自動運行。
下節我們講NFS共享目錄的權限設置
總結
以上是生活随笔為你收集整理的Linux+nfs配置开机启动,linux NFS配置:NFS开机自动启用及其原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 同步 mac,WorkFlo
- 下一篇: Linux小练习