Linux
是什麼啟動了所有這些 rpc.statd 程序?
在我們的伺服器上——執行 CentOS 6 x86_64——我們看到了很多不尋常的活動
rpc.statd
。我們已rpc.statd
配置為通過以下方式在靜態埠上執行/etc/sysconfig/nfs
:MOUNTD_PORT=892 STATD_PORT=662 QUOTAD_PORT=875
這確實會導致
rpc.statd
按預期在此埠上執行和偵聽:# ps -fe | grep rpc.statd | grep 662 rpcuser 23129 1 0 Apr30 ? 00:00:00 rpc.statd -p 662
奇怪的是,在這個系統上,還有許多其他使用該標誌
rpc.statd
執行的實例:--no-notify
rpcuser 808 1 0 02:23 ? 00:00:00 rpc.statd --no-notify rpcuser 2052 1 0 07:17 ? 00:00:00 rpc.statd --no-notify rpcuser 3558 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 5787 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 6499 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 8834 1 0 03:21 ? 00:00:00 rpc.statd --no-notify rpcuser 9661 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 13702 1 0 00:08 ? 00:00:00 rpc.statd --no-notify rpcuser 14813 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 15375 1 0 08:39 ? 00:00:00 rpc.statd --no-notify rpcuser 15376 1 0 04:26 ? 00:00:00 rpc.statd --no-notify rpcuser 19782 1 0 09:36 ? 00:00:00 rpc.statd --no-notify rpcuser 20491 1 0 05:36 ? 00:00:00 rpc.statd --no-notify rpcuser 23136 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 23320 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 26145 1 0 10:10 ? 00:00:00 rpc.statd --no-notify rpcuser 26480 1 0 06:24 ? 00:00:00 rpc.statd --no-notify rpcuser 26598 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify rpcuser 26821 1 0 01:15 ? 00:00:00 rpc.statd --no-notify rpcuser 28255 1 0 Apr30 ? 00:00:00 rpc.statd --no-notify
rpc.statd
同樣奇怪的是,就 rpcbind 而言,這些過程之一顯然篡奪了原始過程。rpcinfo
在以下埠上執行 報告 statd:# rpcinfo -p ... 100024 1 udp 34322 status 100024 1 tcp 41686 status
這些對應於 PID 26145(您可以看到它是
rpc.statd
上述輸出中的實例之一ps
)。如果一切正常,這不是問題,但昨天系統開始遇到 NFS 掛載問題……任何掛載新文件系統的嘗試都會導致:
mount.nfs: mount system call failed
關閉所有
rpc.statd
服務“解決”了問題,但我們對這裡發生的事情感到困惑。我們從未在類似配置的 CentOS 5 系統上看到這種行為。
好吧,這似乎部分是我們的錯,部分是 RedHat
authconfig
命令中的錯誤。我們的 Puppet 配置導致authconfig --updateall
每小時執行一次。這是不必要的,但通常它不應該是一個問題……除了authconfig
重新啟動rpcbind
服務。重新啟動
rpcbind
會導致它忘記已向其註冊的所有服務。雖然authconfig
隨後將重新啟動與 NIS 相關的服務,但這會導致rpc.statd
仍在執行但不再註冊的情況rpcbind
——這使得從嘗試通過rpcbind
.我已經修復了我們的 Puppet 配置,使其不再
authconfig
像這樣呼叫,並且我用 RedHat打開了錯誤818246 。