【发布时间】:2017-09-29 05:36:05
【问题描述】:
我有带有 inotifwait 的 shell 脚本设置如下:
inotifywait -r -e close_write,moved_to -m "<path>/upload" --format '%f##@@##%e##@@##%w'
监视目录中有一些 docx 文件,一些脚本通过以下命令将 docx 转换为 PDF:
soffice --headless --convert-to pdf:writer_pdf_Export <path>/upload/somedoc.docx --outdir <path>/upload/
一旦生成 PDF,就会以某种方式触发两次事件。参赛作品如下:
somedoc.pdf##@@##CLOSE_WRITE,CLOSE##@@##<path>/upload/
somedoc.pdf##@@##CLOSE_WRITE,CLOSE##@@##<path>/upload/
这里还有什么问题?
问候
【问题讨论】:
-
我看了一下strace结果,都是soffice.bin本身的
close,第一个是将temp pdf结果文件复制到目的地,第二个只是检查它的统计信息,必须挖掘深入了解java源代码。但是为什么这会困扰你? -
感谢@georgexsh 的回复。实际上,有一些与此触发器绑定的 COPY-TO-CLOUD 功能正在进行。因此,文件被复制了两次,其他一些内务工作同时进行。
-
@JatinDhoot 你在寻找什么样的答案?
-
@feast - 如果从 soffice 生成 PDF,我想只触发一次通知而不是两次。谢谢。
-
@JatinDhoot 如果没有包装代码,您将无法做到这一点,因为文件本身似乎被写入了两次 georgexsh straced
标签: shell inotify inotifywait