【问题标题】:how to execute programs in non-blocking way from scripts如何从脚本以非阻塞方式执行程序
【发布时间】:2011-10-03 16:23:08
【问题描述】:

我有一系列程序文件,a.out、b.out、c.out

我想在每个程序之间有一定的延迟后一个接一个地执行它们。喜欢
./a.out -输入参数
----等待 50 秒----
./b.out -输入参数
-----等待 100 秒----
./c.out

我想在 a.out 开始执行 50 秒后以非阻塞方式执行 b.out,即我不想在 a.out 完成执行后等待 50 秒。

任何人都可以建议在 linux 中执行此操作的方法,因为我将其放入脚本中,该脚本将为我自动执行任务

【问题讨论】:

    标签: linux scripting nonblocking


    【解决方案1】:

    你想要后台进程

    ./a.out -parameters & 
    sleep 50 
    ./b.out -parameters & 
    sleep 100 
    ./c.out &
    

    后台进程在不阻塞终端的情况下运行;您可以使用jobs 工具以有限的方式控制它们。

    【讨论】:

      【解决方案2】:

      要在后台运行它,您可以使用a.out &

      对于超时,请考虑Timeout a command in bash without unnecessary delay

      【讨论】:

        【解决方案3】:

        您可以使用 Bash 脚本和 sleep 程序:

        #!/bin/bash
        ./a.out -input parameters
        sleep 50
        ./b.out -input parameters
        sleep 100
        ./c.out
        

        【讨论】:

        • 仍然是同步的
        • 糟糕,没错。 Kilian 的回答是正确的,应该被接受。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-16
        • 2011-02-14
        • 1970-01-01
        • 2020-10-08
        • 1970-01-01
        相关资源
        最近更新 更多