当前位置: 技术问答>linux和unix
如何判断 mount 的状态
来源: 互联网 发布时间:2017-02-25
本文导语: 我把 B 机器的一个文件夹 mount 到本机 A 的 文件夹 test_mnt。 我有个程序在A机器上运行,执行时需要从 test_mnt 中获取数据。 但是,当B机器的 nfs 服务意外停止时(比如重启后忘了启动 nfs 服务),我在A上...
我把 B 机器的一个文件夹 mount 到本机 A 的 文件夹 test_mnt。
我有个程序在A机器上运行,执行时需要从 test_mnt 中获取数据。
但是,当B机器的 nfs 服务意外停止时(比如重启后忘了启动 nfs 服务),我在A上再执行那个程序,
会导致卡死的状态,有可能是mount在不断的尝试连接到B中的那个被挂载文件夹。。。
现在我希望:当对方(B机器)的nfs停止时,我就不去获取test_mnt 中的数据了。 面临的问题是
如何判断 我的 test_mnt 是否处在正常的mount状态当中 ?
望各位赐教。
我有个程序在A机器上运行,执行时需要从 test_mnt 中获取数据。
但是,当B机器的 nfs 服务意外停止时(比如重启后忘了启动 nfs 服务),我在A上再执行那个程序,
会导致卡死的状态,有可能是mount在不断的尝试连接到B中的那个被挂载文件夹。。。
现在我希望:当对方(B机器)的nfs停止时,我就不去获取test_mnt 中的数据了。 面临的问题是
如何判断 我的 test_mnt 是否处在正常的mount状态当中 ?
望各位赐教。
|
程序 直接 open , read
/proc/mounts
文件, 分析里面的内容就可以了。
/proc/mounts
文件, 分析里面的内容就可以了。
|
随便找一个mount后应该存在的文件,然后判断文件是否存在就可以判断是否处于正常mount下了
如果在shell下,比如
#/usr/bin/sh
if [ -f /test_mnt/abc.sh ]; then
echo "exists!";
fi
如果使用C代码,则用access(...)判断一下就可以了。
如果在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
if [ $? -eq 0 ]; then
文件系统已mount
fi
|
支持楼上的方法。
还有一种方法,用system执行mount命令,分析得到的文本信息。
还有一种方法,用system执行mount命令,分析得到的文本信息。
|
这个/proc/mounts文件是不会阻塞的啊,记录的是有没有mount信息