在脚本中并行运行 2 个无限循环,并在脚本停止时终止
Posted
技术标签:
【中文标题】在脚本中并行运行 2 个无限循环,并在脚本停止时终止【英文标题】:Run 2 infinite loops parallel in a script, and kill when script stops 【发布时间】:2019-05-04 15:04:57 【问题描述】:我正在编写一个脚本,我想在其中并行运行多个无限循环。
我尝试在后台运行,但我希望在脚本停止时终止循环。
脚本示例:
#### SYNC CALL ####
while true :: Loop 1 ::
do
sync_stat
sleep $SYNC_TIME
done &
#### TABLESPACE CALL #### :: Loop 2 ::
while true
do
tablespace_stat
sleep $TABLESPACE_TIME
done &
想要运行包含 Loop1 和 Loop2 的脚本,以便这些循环在后台或前台同时运行,并且当脚本停止时,循环应该停止。
【问题讨论】:
【参考方案1】:你可以杀死当前的所有孩子:
pkill -P $$
尝试将此标记到脚本的末尾。
【讨论】:
【参考方案2】:你有两个选择
选项1:最好在while lopp语句中将一些变量与while&更改其值。
while true
do
x=`sync_stat`
if [ <condition on $x variable> ];
then
break;
fi
sleep $SYNC_TIME
done &
选项 2:只需使用 bash 命令 bash <script name>
运行脚本并使用 pkill bash
随时终止正在运行的脚本。
【讨论】:
以上是关于在脚本中并行运行 2 个无限循环,并在脚本停止时终止的主要内容,如果未能解决你的问题,请参考以下文章