Linux Bash并行处理-限制总运行时间

Linux Bash并行处理-限制总运行时间,linux,bash,parallel-processing,modem,Linux,Bash,Parallel Processing,Modem,我想我想做的事情相当简单;我想将callSite函数的总运行时间限制为x秒;因为我只想让它运行,不一定要连接。这一部分将在我项目的后面部分处理 我想我需要做的是终止callSite的进程,但是我在使用计时器作为并行运行的循环时遇到了一些问题 #!/usr/bash function timer { for ((i=$1; i>0; i--)); do printf "\rScript will finish in $i sec

我想我想做的事情相当简单;我想将callSite函数的总运行时间限制为x秒;因为我只想让它运行,不一定要连接。这一部分将在我项目的后面部分处理

我想我需要做的是终止callSite的进程,但是我在使用计时器作为并行运行的循环时遇到了一些问题

    #!/usr/bash
    function timer {
            for ((i=$1; i>0; i--)); do
            printf "\rScript will finish in $i seconds."
            read -s -n 1 -t 1 key
            if [[ $key ]]
            then
                break
            fi
        done

}

function callSite {
      sudo minicom Cisco -d $1
      #configuration for the modem dialing program
}



 timer 60 & callSite Boston && fg
 #this is where one would enter the desired runtime of the process

您建议我如何将计时器和minicom绑定在一起,以便在指定的时间过后终止minicom进程?

它的可能重复实际上取决于您如何配置调制解调器拨号程序。@konsolebox我为调制解调器拨号程序存储的唯一配置仅为程序映射到的串行端口。我将它声明为一个函数,这样我就不必每次在脚本中调用该命令,因为我计划在同一个脚本中多次复制该命令以拨出到不同的站点。@Emilien谢谢!通过使用timeout命令,我能够得到我想要的。@rwaweber我的意思是,sudo minicom Cisco-d$1不会在前台运行并在之后运行命令之前停止脚本吗?我能够通过使用timeout命令完成同样的事情,如下所示:timeout 60s minicom Cisco-d Boston
(
    callSite Boston &
    PID=$!
    timer 60 && kill "$PID" &>/dev/null
) &