日期:2014-05-16  浏览次数:21078 次

如何判断 mount 的状态
我把 B 机器的一个文件夹 mount 到本机 A 的 文件夹 test_mnt。

我有个程序在A机器上运行,执行时需要从 test_mnt 中获取数据。 

但是,当B机器的 nfs 服务意外停止时(比如重启后忘了启动 nfs 服务),我在A上再执行那个程序,
会导致卡死的状态,有可能是mount在不断的尝试连接到B中的那个被挂载文件夹。。。

现在我希望:当对方(B机器)的nfs停止时,我就不去获取test_mnt 中的数据了。 面临的问题是

如何判断 我的 test_mnt 是否处在正常的mount状态当中 ?

望各位赐教。

------解决方案--------------------
随便找一个mount后应该存在的文件,然后判断文件是否存在就可以判断是否处于正常mount下了
如果在shell下,比如
#/usr/bin/sh
if [ -f /test_mnt/abc.sh ]; then
echo "exists!";
fi
如果使用C代码,则用access(...)判断一下就可以了。
------解决方案--------------------
探讨

引用:

mount -a |grep test_mnt|grep -v test_mnt
有输出为已经挂载,没输出没挂载


如果要在程序中实现,有没有什么好的办法?

------解决方案--------------------
程序 直接 open , read
/proc/mounts 
文件, 分析里面的内容就可以了。
------解决方案--------------------
支持楼上的方法。
还有一种方法,用system执行mount命令,分析得到的文本信息。
------解决方案--------------------
探讨

引用:

程序 直接 open , read
/proc/mounts
文件, 分析里面的内容就可以了。


这样的话,程序就卡死了。。一直处在打开文件的状态。不能往下执行。