我只是从另一个世界跳到Unix,想知道是否
while true
do
/someperlscript.pl
done
perl脚本本身内部具有一个文件夹/文件监视程序,当在目标位置中更改文件时将执行该文件夹/文件监视程序。
这(while true
)个好主意吗?如果不是,那么首选的可靠方法是什么?
TIA
编辑:由于这似乎已经引起了一定的兴趣,这里是完整的方案。perl脚本本身使用文件监视程序监视目录。收到新文件(它们通过rsync到达)后,它将拾取新文件并进行处理。现在,传入的文件可能已损坏(不要问..来自树莓派),有时该进程可能无法对其进行处理。我不知道为什么,因为我们还不了解所有情况。
但是-如果该进程确实由于某种原因失败,我们希望它能够启动并运行并处理下一个文件,因为下一个文件与可能导致错误的上一个文件完全无关。
通常,我会使用某种形式的catch all并将所有代码包装在它周围,以免它崩溃。但是不确定perl。
据我了解,使用诸如supervisor之类的方法是一种很好的方法。
inotify
API,以便避免在目标目录中等待文件更改的繁忙循环。