gpt4 book ai didi

linux - 多个脚本使休息调用干扰

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:25 25 4
gpt4 key购买 nike

所以我遇到了使用 curl 进行休息调用的 unix 脚本的问题。我有一个脚本,它在其中运行另外两个脚本。

cat example.sh
FILE="file1.txt"
RECIP="wilfred@blamagam.com"
rm -f $FILE
./script1.sh > $FILE
mail -s "subject" $RECIP < $FILE

RECIP="bob@blamagam.com"
rm -f $FILE
./script2.sh > $FILE
mail -s "subject" $RECIP < $FILE
exit 0

每个脚本对同一个服务进行休息调用。据我了解,script1.sh 应该在运行 script2.sh 之前完全完成,但事实并非如此。在休息服务的日志中,我看到来自第二个脚本的休息调用在第一个仍在执行的中间。第二个脚本因此失败(它没有返回任何数据)。

我正在修改这个过程,所以我不是最初编写它的人。我根本没有看到任何 fork 进程或后台进程,我一直在用头撞墙。

我知道 script2.sh 有效。每当 script1.sh 花费不到一分钟时,script2.sh 就可以正常工作,但 script1.sh 通常会花费一分钟,导致第二个脚本失败。

这是由 cron 运行的,文件的内容是邮寄出去的,所以我不能默认手动运行它们。任何关于调查内容的建议将不胜感激!

编辑:这是一个高级伪代码示例

script1.sh

ITEMS=`/usr/bin/curl -m 10 -k -u userName:passWord -L https://server/rest-service/rest?where=clause=value;clause2=value2&sel=field 2>/dev/null | sed s/<\/\?Attribute[^>]*>/\n/g | grep -v '^<' | grep -v '^$' | sed 's/ //g'`
echo "\n Subject for these metrics"
echo "$ITEMS"

这两个脚本都有很多这样的条目。有 2 或 3 个 for 循环,但它们很简单,我没有看到任何后台进程被调用。它是一个大脚本,所以我只能提供一个片段。其余的管道调用会导致问题吗?

最佳答案

编辑:刚刚在我的系统上对此进行了测试,它似乎可以正常工作。

cat example.sh
FILE="file1.txt"
RECIP="wilfred@blamagam.com"
rm -f "$FILE"
(./script1.sh > "$FILE") &
procscript1=$!
wait "$procscript1"
mail -s "subject" "$RECIP" < "$FILE"

RECIP="bob@blamagam.com"
rm -f "$FILE"
(./script2.sh > "$FILE") &
procscript2=$!
wait "$procscript2"
mail -s "subject" "$RECIP" < "$FILE"
exit 0
  • 使用 & 将脚本执行放在后台。
  • 获取每个脚本执行的进程 ID。
  • 使用wait命令阻塞直到执行完成。

关于linux - 多个脚本使休息调用干扰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32076240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com