Python挂载时挂起了陈旧的挂载。建议?

2024-06-16 12:15:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我今天遇到了一个问题,一个挂载过时了,这导致我的整个python应用程序无限期挂起。在

所发生的是挂载失效,然后我在该路径上调用了os.path.exists(path)。呼叫无限期挂起。在

我真的需要阻止这一切。我唯一的想法是将os.path.exists调用放在后台线程上,如果线程在超时数秒后仍处于活动状态,则突然终止该线程(显然不是首选)。理想情况下,我会先打电话检查挂载是否过时,从而避免这种情况。在

有什么想法吗?仅供参考,所有试图访问此路径的调用都挂起,包括os.path.ismount(path)。虽然这是一个罕见的事件,但我不能让我的整个系统冻结在users:/。在


Tags: path路径应用程序os系统exists事件情况
1条回答
网友
1楼 · 发布于 2024-06-16 12:15:18

您可以使用python子进程模块和shell“timeout”命令来检测挂起:

call = subprocess.Popen(["timeout 10 ls /your_mount_dir/ &> /dev/null; echo $?"], stdout=subprocess.PIPE, shell=True)
output = call.communicate()
result = output[0].strip()
if result != '0':
   # Mount is hung.

相关问题 更多 >