我有几个celery任务,它们通过nfsv4(netapp作为后端)在nfs共享上运行。
我不时会在提出任务异常后假设, .nfs0000 *文件出现在共享上并且只有在我重新启动芹菜时才会消失。
我之前发现了这个:
在linux / unix下,如果删除当前正在运行的进程仍然打开的文件,则该文件不会被删除。一旦进程关闭文件,操作系统就会删除文件句柄并释放磁盘块。当打开和删除的文件位于NFS挂载的文件系统上时,此过程稍微复杂一些。由于打开文件的进程在一台计算机(例如办公室或实验室中的工作站)上运行,并且文件位于文件服务器上,因此两台计算机必须有某种方式来传递有关此文件的信息。 NFS执行此操作的方式是使用.nfsNNNN文件。如果您尝试删除其中一个文件,并且该文件仍处于打开状态,则它将以不同的编号重新出现。因此,为了完全删除文件,您必须终止打开它的进程。
如果您想知道打开此文件的进程,可以使用&nbspof .nfs1234'。但请注意,这仅适用于运行文件打开的进程的计算机。因此,如果您的进程在一台机器上运行(例如bobac)并且您在其他一些挖掘机器上运行lsof(例如筒仓或草原),您将无法看到任何内容。
(Source)
任何想法我怎么能阻止它?