我正在使用修改版Paul Biggar 的 LaTeX 构建系统。
这个系统的核心只是一个执行无限循环的bash脚本。问题是,我该如何运行这个脚本?
目前我只是通过在终端中调用它来运行它:
$ ./build-it.sh report
然而,这样做有两个问题:
- 它用不相关的输出使终端混乱。将标准输出/错误流重定向到也
/dev/null
无济于事。事实上,每一行脚本中执行的内容也会写入控制台。这正常吗? - 一段时间后(我想大概是 30 分钟),脚本因错误(“超出 Cputime 限制”)而终止。
第一个问题可能可以通过使用nohup
并关闭终端窗口。但这仍然留下了第二个问题。我还觉得这不是一个“干净”的解决方案,因为我更愿意在后台正常运行脚本并阻止其标准输出(顺便说一下,不是错误消息)。
难道没有正确的方法来做到这一点吗?
答案1
如果你使用发布的脚本作为答案这里, 然后你可以去除set -x
用于调试。
如果您重定向stderr
脚本,它应该抑制调试输出,但它也会抑制任何错误消息。
编辑:
另外,该脚本中还有一行ulimit -t 10
。删除它可能会有帮助。
答案2
尝试:
ulimit -t unlimited
用于设置 CPU 时间限制,以及
man bash
ulimit
了解bash 内置命令的更多选项
答案3
您可以调用$ ./build-it.sh report & exit
它将解决第一个问题。
至于第二点,可能和实际剧本有更大的关系。