在linux中,rpc.statd是一個進程,實現了網絡狀態監控(NSM)RPC協議,通知NFS客戶端什么時候一個NFS服務器非正常重啟動,語法“/sbin/rpc.statd [-F] [-d] [-?] [-n name ] [-o port ] [-p port ] [-V]”。nfslock服務會自動啟動rpc.statd進程,不需要用戶進行配置。
下面的RPC后臺進程是為NFS提供服務的
-
rpc.mountd:這個進程接受來自NFS客戶端的加載請求和驗證請求的文件系統正在被輸出。這個進程由NFS服務自動啟動,不需要用戶的配置。
-
rpc.nfsd:這個進程是NFS服務器.它和Linux核心一起工作來滿足NFS客戶端的動態需求,例如提供為每個NFS客戶端的每次請求服務器線程。這個進程對應于nfs服務。
-
rpc.lockd:一個可選的進程,它允許NFS客戶端在服務器上對文件加鎖。這個進程對應于nfslock服務。
-
rpc.statd:這個進程實現了網絡狀態監控(NSM)RPC協議,通知NFS客戶端什么時候一個NFS服務器非正常重啟動。這個進程被nfslock服務自動啟動。不需要用戶的配置。
-
rpc.rquotad:這個進程對于遠程用戶提供用戶配額信息。這個進程被nfs服務自動啟動,不需要用戶的配置。
Linux 命令 rpc.statd
rpc.statd 服務實現了 NSM(網絡狀態監視器)RPC 協議。
這項服務的名稱有些錯誤,因為它實際上并沒有像人們懷疑的那樣提供主動監控;相反,NSM 實現了重啟通知服務。
rpc.lockd 是用來在 NFS 服務器崩潰和重新啟動時恢復鎖定的文件服務。
使用 rpc.statd
過去,在某些 Linux 發行版上,我們需要在啟動 NFS 服務器時單獨啟動 rpc.statd。
這主要是由于舊的 Sysvinit 系統。
現在,我們會發現啟動 NFS 將自動啟動 rpc.statd 和服務器正常運行所需的任何其他組件。
systemctl?start?nfs
或者(取決于發行版)
systemctl?start?nfs-server
在啟動時啟用服務器時也是如此。
基于 debian 的發行版,例如 ubuntu 和 Linux Mint 將在我們安裝后立即啟用 NFS,因此無需執行此操作,但啟用服務器看起來像這樣:
systemctl?enable?nfs
或者
systemctl?enable?nfs-server
同樣,確切的命令取決于發行版。
“nfs-server”是一個基于 Debian 的系統。
-
如果我們需要自定義 rpc.statd 的行為,我們可以使用以下選項進行操作。
-
通常,我們不會希望單獨運行該命令。
-
相反,我們將復制 Systemd 服務文件,創建原始備份和新副本以自由修改。
-
然后,我們將使用以下選項更改從該服務文件調用服務的方式。
語法
/sbin/rpc.statd?[-F]?[-d]?[-?]?[-n?name?]?[-o?port?]?[-p?port?]?[-V]
操作
對于要監視的每個 NFS 客戶端或者服務器機器, rpc.statd 在 /var/lib/nfs/statd/sm 中創建一個文件。
啟動時,它遍歷這些文件并通知這些機器上的 peerrpc.statd。
選項
-F
默認情況下,rpc.statd 在啟動時分叉并置于后臺。
-F 參數告訴它保持在前臺。
此選項主要用于調試目的。
-d
默認情況下,rpc.statd 通過 syslog (3) 將日志消息發送到系統日志。
-d 參數強制它改為將詳細輸出記錄到 stderr。
此選項主要用于調試目的,只能與 -F 參數結合使用。
-n, –name name
為 rpc.statd 指定一個名稱以用作本地主機名。
默認情況下,rpc.statd 會調用 gethostname(2) 來獲取本地主機名。
指定本地主機名對于具有多個接口的機器可能很有用。
-o, –outgoing-port 端口
為 rpc.statd 指定一個端口,以從中發送傳出狀態請求。
默認情況下,rpc.statd 會要求 portmap (8) 為其分配一個端口號。
在撰寫本文時,還沒有 portmap 總是或者通常分配的標準端口號。
在實施防火墻時指定端口可能很有用。
-p, –port 端口
指定 rpc.statd 監聽的端口。
默認情況下,rpc.statd 會要求 portmap (8) 為其分配一個端口號。
在撰寫本文時,還沒有 portmap 總是或者通常分配的標準端口號。
在實施防火墻時指定端口可能很有用。
-?
導致 rpc.statd 打印出命令行幫助并退出。
-V
使 rpc.statd 打印出版本信息并退出。
TCP_WRAPPERS SUPPORT
此 rpc.statd 版本受 tcp_wrapper 庫保護。
如果允許客戶端使用 rpc.statd,則必須授予客戶端訪問權限。
要允許來自 .bar.com 域的客戶端的連接,我們可以在 /etc/hosts.allow 中使用以下行:
statd:?.bar.com
我們必須使用守護程序名稱 statd 作為守護程序名稱(即使二進制文件具有不同的名稱)。