在 OS X 上启动 bash 后台进程

在 OS X 上启动 bash 后台进程

我正在使用修改版Paul Biggar 的 LaTeX 构建系统

这个系统的核心只是一个执行无限循环的bash脚本。问题是,我该如何运行这个脚本?

目前我只是通过在终端中调用它来运行它:

$ ./build-it.sh report

然而,这样做有两个问题:

  1. 它用不相关的输出使终端混乱。将标准输出/错误流重定向到也/dev/null无济于事。事实上,每一行脚本中执行的内容也会写入控制台。这正常吗?
  2. 一段时间后(我想大概是 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它将解决第一个问题。

至于第二点,可能和实际剧本有更大的关系。

相关内容