linux – 等待子shell进程完成

linux – 等待子shell进程完成,第1张

概述processUsageFile(){ #sdate=`pin_virtual_time | awk -F" " '{print $3}'`; #Get all new files to be loaded to brm staging data. count=`ls ${PRE_STAGING}/TWN* 2>/dev/null|grep -v reprocess|
processUsagefile(){    #sdate=`pin_virtual_time  | awk -F" " '{print }'`;    #Get all new files to be loaded to brm staging data.    count=`ls ${PRE_STAGING}/TWN* 2>/dev/null|grep -v reprocess|wc -l`    if [ $count -ne 0 ];then        # Fork subshell        (./efx_omc_brm_rpt_process.sh -t TWN & )&        exitOnError    fi    #Process RAPId Report files    count=`ls $PRE_STAGING/RR* 2>/dev/null|grep -v  reprocess|wc -l`    if [ $count -ne 0 ];then        (./efx_omc_brm_rpt_process.sh -t RR &)&        exitOnError    fi......}#Reprocessing. Process the reprocessed files.#This method updates the records in the BRM staging table.reprocessingUsagefile(){    #Process TWN fulfillment reprocess files    count=`ls $PRE_STAGING/TWN*reprocess* 2>/dev/null|wc -l`    if [ $count -ne 0 ];then        # Fork subshell        (./efx_omc_brm_rpt_reprocess.sh -t TWN & ) &    fi    #Process RAPId Report files    count=`ls $PRE_STAGING/RR*reprocess* 2>/dev/null|wc -l`    if [ $count -ne 0 ];then        (./efx_omc_brm_rpt_reprocess.sh -t RR &) &    fi......}#Pre processingPreProcessing# Start processing usage files.processUsagefileprocessErrfile

上述代码的思想是做并行处理.所有方法都调用多个子shell并从tty中分离.我想知道是否有办法等待前两个方法先完成执行然后再运行最后一个方法.

等待PID在某种程度上是不准确的.仍然在尝试…

waitPIDs() {echo "Testing $pIDs -- ${#pIDs[@]}"    while [ ${#pIDs[@]} -ne 0 ]; do            local range=$(eval echo {0..$((${#pIDs[@]}-1))})            local i            for i in $range; do                if ! kill -0 ${pIDs[$i]} 2> /dev/null; then                    echo "Done -- ${pIDs[$i]}"                     unset pIDs[$i]                fi            done            pIDs=("${pIDs[@]}")             sleep 1        done    }
解决方法 似乎主要的问题是,你正在使用分离的子壳.

也许最简单的解决方案是使用不同的机制来分离子shell,这样你就可以使用wait.

例如通过nohup

nohup ./process1 & nohup ./process2 & wait
总结

以上是内存溢出为你收集整理的linux – 等待子shell进程完成全部内容,希望文章能够帮你解决linux – 等待子shell进程完成所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1021213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存