Ubuntu 22.04关机时无法停止NFS服务——仍被Zoneminder服务占用
Ubuntu 22.04关机时无法停止NFS服务——仍被Zoneminder服务占用
这个问题本质是systemd的服务启停顺序出了问题:系统关机时会先尝试卸载NFS挂载点,但Zoneminder还在后台读写录像文件,导致挂载点被占用无法正常卸载,只能等NFS超时后强制断开。咱们只需要调整Zoneminder服务的依赖配置,让它在系统处理NFS卸载之前停止运行,就能解决这个慢关机的问题,具体步骤如下:
编辑Zoneminder的systemd服务配置
不要直接修改系统默认的服务文件,而是用systemd的override功能创建自定义配置:sudo systemctl edit zoneminder.service添加依赖规则
在弹出的编辑窗口中,粘贴以下内容:[Unit] # 确保Zoneminder只有在NFS挂载完成后才启动 RequiresMountsFor=/mnt/nfs # 指定Zoneminder要在远程文件系统卸载、关机/重启/停机操作之前停止 Before=remote-fs.target shutdown.target reboot.target halt.target保存并退出编辑器(如果用nano的话按
Ctrl+O回车,再Ctrl+X)。重新加载systemd配置
让systemd识别我们的修改:sudo systemctl daemon-reload测试效果
现在可以用你原来的命令测试关机:sudo virsh shutdown my-zoneminder-guest虚拟机应该会快速完成关机,不会再出现NFS超时等待的情况。
如果上面的方法没生效,还有一个备选思路:给NFS挂载添加soft挂载选项(在/etc/fstab里修改),这样客户端在无法联系服务器时会更快超时,但这个只是应急方案,还是调整服务顺序的方法更规范,能保证Zoneminder正常停止、数据写入完成后再卸载NFS。
备注:内容来源于stack exchange,提问作者Programster
相关产品推荐
相关产品推荐

