CentOS 关机 自动 umount 强制卸载 nfs的方法

 CentOS 如果挂载了nfs服务器,当调用命令或按钮关闭计算机时,有可能出现:umount: /xx_path : device is busy

导致操作系统无法关闭。

     由于项目需要,要求 无论调用 关机命令(shutdown 、 init 0)或 重启命令(reboot 、init 6),点击 关机按钮 或 重启按钮后, 在即使有无法卸载的 nfs的情况,也能够正常关闭或重启服务器。


分几步实现:


1. 创建 关机前执行的脚本文件:scriptname

    stop()
      {
       umount -lf /mount_path/*
      }

    case "$1" in
        stop)
        stop
        ;;
    esac

2.  把 scriptname 脚本放到 /etc/init.d目录下,并赋予该脚本执行权限

   并在 /etc/rc0.d   和  /etc/rc6.d  目录下 创建软连接,

    chmod 777 /etc/init.d/scriptname

    ln -s  /etc/init.d/scriptname  /etc/rc0.d/K11scriptname 
    ln -s  /etc/init.d/scriptname  /etc/rc6.d/K11scriptname 


3. 创建lock 文件

touch /var/lock/subsys/scriptname

4.  需要注意的是  lock文件,关机后,就会被删除,也就是说 它只能使用一次。如果想保持始终关机或重启能够执行 scriptname 脚本,就必须保证 关机或重启前 lock文件文在

5. 上述问题的解决办法:每次开机时生成 lock文件。如果把 该脚本制作成完整的服务程序,并打包成rpm,则在安装时,会提示与chkconfig 冲突,无法正确安装,如果添加 --force 参数,可以安装。

你可能感兴趣的:(linux)