linux - 如何使用 Linux bash 函数到 "trigger two processes in parallel"

标签 linux bash

请考虑以下示例代码片段:

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/

相关文章:

c - C中多个管道的实现

linux - 如何直接从程序输出以填写网页上的表格?

bash - 如何 grep 文件中的非零单词?

bash - 制表符完成时如何防止 bash 完成替换字符

bash - 将 32/64 位数转换为 4/8 字符串

linux - Bash 脚本 - 根据模板转换时间

linux - lock_page 对该页面以及引用/映射该页面的进程有什么影响?

linux - 以 + 开头的文件显示 Linux 中的不一致

linux - 用于获取服务器健康状况的 Bash 脚本

Java 类在 Linux 中找不到或加载主类,但 Windows 正常