请考虑以下示例代码片段:
function cogstart
{
nohup /home/michael/..../cogconfig.sh
nohup /home/michael/..../freshness_watch.sh
watch -n 15 -d 'tail -n 1 /home/michael/nohup.out'
}
基本上 freshness_watch.sh 和 last watch 命令应该并行执行,即 watch 命令不必等到它的前传完成。我正在尝试使用 xterm 之类的方法,但由于 freshness_watch.sh 是一个最多持续 15 分钟的脚本(由于我在 Linux 中编写文件监控脚本的方式不佳),我绝对想触发此脚本仍在执行时的最后一个 watch 命令...
有什么想法吗?也许在两个单独/独立的终端?
非常感谢任何提示/帮助。
最佳答案
正如 schemathings 间接指出的那样,您可能希望将“&”字符附加到 freshness_watch.sh 行的末尾。 (没有单引号)。我看不出有任何理由为你的最终 watch 命令使用“&”,除非你在那之后添加更多命令。
unix 命令行末尾的“&”表示“在后台运行”。
您可能想在调用 freshness_watch 后插入一个 sleep ${someNumOfSecs},给它一些时间让 CPU 独立。
当您提到 xterm 时,您是否了解 crontab 工具,它允许您安排作业在您需要的任何时间运行,并且无需用户登录即可完成? (也许这将有助于解决您的问题)。我喜欢将作业设置为在 crontab 中运行,因为这样您就可以捕获您想要捕获的任何跟踪信息以及来自 stderr 的任何可能输出到日志/跟踪文件中。
关于linux - 如何使用 Linux bash 函数到 "trigger two processes in parallel",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5190450/