Linux

是什麼啟動了所有這些 rpc.statd 程序?

  • May 2, 2012

在我們的伺服器上——執行 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 系統上看到這種行為。

好吧,這似乎部分是我們的錯,部分是 RedHatauthconfig命令中的錯誤。我們的 Puppet 配置導致authconfig --updateall每小時執行一次。這是不必要的,但通常它不應該是一個問題……除了authconfig重新啟動rpcbind服務。

重新啟動rpcbind會導致它忘記已向其註冊的所有服務。雖然authconfig隨後將重新啟動與 NIS 相關的服務,但這會導致rpc.statd仍在執行但不再註冊的情況rpcbind——這使得從嘗試通過rpcbind.

我已經修復了我們的 Puppet 配置,使其不再authconfig像這樣呼叫,並且我用 RedHat打開了錯誤818246 。

引用自:https://serverfault.com/questions/384934