Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关闭文件描述符和删除inotify watch真的有必要吗?_Python_Linux_Inotify - Fatal编程技术网

Python 关闭文件描述符和删除inotify watch真的有必要吗?

Python 关闭文件描述符和删除inotify watch真的有必要吗?,python,linux,inotify,Python,Linux,Inotify,使用python inotifyx,如果需要,是否必须删除监视并关闭打开的系统文件描述符,直到程序退出?例如,如果我在每次运行时创建一个(文件描述符+手表)而不关闭它,是否会出现一些可能的问题?内核将手表存储为完整路径,因此最好关闭手表,这也会减少VFS不必要的工作。至于文件描述符,这将取决于您打开了多少其他文件 有点像一个电话,告诉对方你已经停止听,这很好,挂断电话是可选的,但很常规。如果您有什么需要,请保留它。每当您使用完资源(例如,释放内存、关闭文件描述符、子进程上的waitpid(2)等

使用python inotifyx,如果需要,是否必须删除监视并关闭打开的系统文件描述符,直到程序退出?例如,如果我在每次运行时创建一个(文件描述符+手表)而不关闭它,是否会出现一些可能的问题?

内核将手表存储为完整路径,因此最好关闭手表,这也会减少VFS不必要的工作。至于文件描述符,这将取决于您打开了多少其他文件


有点像一个电话,告诉对方你已经停止听,这很好,挂断电话是可选的,但很常规。如果您有什么需要,请保留它。

每当您使用完资源(例如,释放内存、关闭文件描述符、子进程上的waitpid(2)等),释放资源总是一个好主意。懒惰并让操作系统在您退出时为您处理这些问题肯定会在将来导致bug。

但是linux不应该在进程退出时自动这样做吗?或者,如果不删除inotify watch,很可能会在操作系统中留下一些额外的跟踪?@hell.orts.ru:是的,当进程终止时,Linux会这样做,从您的问题的措辞来看,听起来您不再需要手表,而是想保留文件描述符。在这种情况下,是的,移除手表并保留FD。据我所知,“未来的bug”意味着Linux内核或Python中相当严重的bug。或者我遗漏了什么?可能是,但那不太可能。更有可能的是,您将以某种方式修改代码,从而导致资源泄漏。例如,将一段代码重构成一个函数并多次调用它——如果这个新函数泄漏了一个文件描述符,那么这就是一个问题。