You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 14.04中rpcbind导致服务器重启超时的解决咨询

解决Ubuntu 14.04升级后NFS服务器重启超时(rpcbind等待过久)的问题

遇到过一模一样的情况——从12.04升14.04后,NFS服务器重启直接从3分钟以内变8分钟+,查来查去就是rpcbind在那卡着。给你几个亲测有效的解决思路:

1. 调整rpcbind的超时配置

Ubuntu 14.04里的rpcbind默认没有设置停止超时,导致它会无限等待依赖服务。编辑配置文件:

sudo nano /etc/default/rpcbind

添加或修改这一行:

RPCBIND_OPTS="-w -t 5"

-t 5表示设置5秒超时,到点就强制退出。保存后重启rpcbind服务生效:

sudo service rpcbind restart

2. 强制卸载NFS挂载点(避免系统等待挂载超时)

重启时如果有未正常卸载的NFS共享,系统会默认等很久超时。可以在关机流程里提前强制卸载:

  • 创建一个关机脚本:
sudo nano /etc/rc0.d/S01-unmount-nfs

写入内容:

#!/bin/sh
umount -f -a -t nfs
umount -f -a -t nfs4
exit 0
  • 给脚本加执行权限:
sudo chmod +x /etc/rc0.d/S01-unmount-nfs

这样系统进入关机流程时会先强制卸载所有NFS挂载,不会卡在这一步。

3. 调整NFS服务的停止顺序与超时

升级后upstart的服务依赖可能乱了,rpcbind会等NFS服务完全停止才退出。可以修改NFS服务的停止逻辑:
比如针对NFS服务端,编辑/etc/init.d/nfs-kernel-server,找到stop()函数,添加超时强制终止的逻辑:

stop() {
    echo -n "Stopping NFS kernel daemon: "
    start-stop-daemon --stop --quiet --oknodo --signal TERM --pidfile /var/run/nfsd.pid
    # 添加超时强制杀死进程
    timeout 10s killall -TERM nfsd 2>/dev/null
    echo "nfsd."
    ...
}

客户端的话修改/etc/init.d/nfs-common的对应部分即可。

4. 查日志定位具体等待原因

如果上面的方法没解决,先看日志找根源:

# 查看上一次重启的系统日志
journalctl -b -1 | grep rpcbind
# 或者看syslog
cat /var/log/syslog | grep rpcbind

日志里会显示rpcbind在等什么——比如是某个远程NFS服务器没响应,还是某个依赖服务(比如portmap)没停,针对性处理就行。

5. 更新rpcbind到最新版本

有时候是版本bug导致的超时,直接更新rpcbind:

sudo apt-get update && sudo apt-get install --only-upgrade rpcbind

先从查日志开始,定位清楚问题再动手,一般调整完rpcbind超时和NFS挂载卸载逻辑,重启时间就能回到正常水平。

内容的提问来源于stack exchange,提问作者tink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:07:43