从shell命令定时退出
我有一个shell脚本来生成两种类型的报告。 每个报告都是通过执行Sweave脚本,然后从生成的tex文件中编译PDF生成的。
eval "R CMD Sweave Weekly.Rnw"
eval "pdflatex Weekly.tex"
eval "R CMD Sweave Daily.Rnw"
eval "pdflatex Daily.tex"
例如,如果在执行'R CMD Sweave Weekly.Rnw'时出错,它会退出但仍然生成一个tex文件(我检查过的文件不能被停止),并且这个tex文件在pdflatex中无法正确编译,即'pdflatex Weekly .tex'命令会挂起,并且shell脚本不会移动到下一个'R CMD Sweave Daily.Rnw'。
现在,我的问题是:如果我知道某个shell命令不应该花费更多的时间(30秒),是否有办法在几分钟后(或某个任意的时间间隔)后导致从该命令(假定挂起)定时退出? 或者,在编译tex文件时遇到错误,是否有强制关闭乳胶引擎的方法?
谢谢。
使用pdflatex -halt-on-error
阻止pdflatex
提出问题。
请参阅R.utils::evalWithTimeout
或setTimeLimit
- 这些操作可以中断命令,shell或其他方式,我相信,只要用户中断了超时,并且该命令可以被用户中断。
或者,如果从R CMD check
调用该pdflatex,并且您不知道如何将参数传递给pdflatex,并且您正在使用Windows,则可以使用以下替代方法:
接着 :
这应该解决R CMD检查似乎在“检查重新构建的vignette PDF文件...”或“检查PDF版本的手册...”问题上挂起错误。
链接地址: http://www.djcxy.com/p/33437.html