Linux Inotifywait在一次执行后未被执行

Linux Inotifywait在一次执行后未被执行,linux,shell,inotify,Linux,Shell,Inotify,我有一个shell脚本,在其中我使用“inotifywait”监视三个目录。一旦文件进入“dirToProcess”目录,一些处理就完成了,然后文件被移动到“successDir”或“failedDir”目录 现在,只要在任何目录中移动或复制任何文件,我希望inotifywait执行 以下是我正在执行的代码: inotifywait $dirToProcess $successDir $failedDir -e create -e moved_to -- exclude "\.(sw

我有一个shell脚本,在其中我使用“inotifywait”监视三个目录。一旦文件进入“dirToProcess”目录,一些处理就完成了,然后文件被移动到“successDir”或“failedDir”目录

现在,只要在任何目录中移动或复制任何文件,我希望inotifywait执行

以下是我正在执行的代码:

inotifywait $dirToProcess $successDir $failedDir -e create -e moved_to --   
   exclude "\.(swx|swp|end|en1)" |
 while read path action file; do
    if [ -f $dirToProcess/$file ]; then
            doSomething;
    elif [ -f $successDir/$file ]; then
            cleanDir $successDir        # function which has some specific logic
            exit 0;
    elif [ -f $failedDir/$file ]; then
            cleanDir $failedDir         # function which has some specific logic
            exit 0;
    else
            c4lx_log "File $file not in poll, archive or failed, then why did we get notified?"
            exit 0;
    fi
问题是: 一旦文件进入'dirToProcess'inotifywait,请注意并调用它。但在处理后,当文件被移动到“$successDir”或“$failedDir”(使用与在“dirToProcess”inotifywait中处理文件相同的代码)时,不会执行该操作。但如果我在这两个目录中手动移动文件,则一切似乎都正常

如果我遗漏了任何细节,有人能给我一些提示或解释一下吗

(我尝试将-m或-r选项与inotifywait一起使用,但似乎不起作用)


谢谢

您需要为
inotifywait
指定
-m
标志,以便在第一个事件后继续执行。

正如我所说,但即使使用-m,它有时也会工作,有时也会不工作。您需要更具体一些。如果没有
-m
,它绝对不会工作。使用
-m
,您可能会有其他一些问题r要诊断的问题。所有代码所做的是调用一些其他函数来处理目录dirToProcess中的文件,并将文件移动到“successDir”或“failedDir”。我不确定这怎么可能是一个问题,-m的使用顺序是否重要?