首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的Jenkins脚本挂在while循环上?

为什么我的Jenkins脚本挂在while循环上?
EN

Stack Overflow用户
提问于 2015-03-22 11:22:34
回答 2查看 1.7K关注 0票数 0

我正在运行一个Jenkins脚本来构建Jenkins程序并准备它的环境。我发布了脚本中挂起的部分。它挂在while [[ "$ENDPOINT_STATUS" != 0 && (( $COUNTER < 5 )) ]]行中。有人能告诉我问题出在哪里吗?

代码语言:javascript
复制
##############
## wait until config wizard exits
while [ $($SSH pgrep -f /opt/company/grapevine/bin/grapevine_config_wizard | wc -l) -ne 0 ]
do
    echo "Config wizard still running. Sleeping..."
    sleep 30
done

$SSH chmod -v 755 /home/grapevine/.python-eggs || true
$SSH chown -vR grapevine:grapevine /home/grapevine/.python-eggs || true

source $WORKSPACE/tools/dev/quick-sanity/poormans-quick-sanity.sh "$CONTROLLER_IP"

set +e
run_basic_tests "$CONTROLLER_IP"
ENDPOINT_STATUS=$?
set -e
COUNTER=0

while [[ "$ENDPOINT_STATUS" != 0 && (( $COUNTER < 5 )) ]] 
do
    echo "At least one endpoint is not up. Sleeping..."
    sleep 60

    set +e
    run_basic_tests "$CONTROLLER_IP"
    ENDPOINT_STATUS=$?
    set -e

    (( COUNTER += 1 ))
done

if [ "$ENDPOINT_STATUS" -ne 0 ]
then
    echo "Hard fail Failing"
    exit 1
fi

if [ $($SSH service runonce status | grep ERROR | grep config_wizard | wc -l) -gt 0 ]
then
   echo "Config wizard failed with errors:"
   $SSH cat /var/log/runonce/config_wizard*.log
   exit 1
else
   echo "Config wizard succeeded"
   echo "Sleeping while Grapevine services start..."
   sleep 300
   exit 0
fi
EN

回答 2

Stack Overflow用户

发布于 2015-03-22 11:25:43

与其说是Jenkins的问题,不如说是bash脚本问题。

您了解端点的相关信息吗?你试过手动测试吗?也许有一些事情正在进行,它不会很快失败,但会永远将连接留在“无所作为的过程中”。

票数 0
EN

Stack Overflow用户

发布于 2015-03-22 17:56:04

我还在学习,但我注意到了一些事情。

  1. 内无代码例如,测试或赋值不需要$FOO=$((COUNTER++))
  2. Double括号(()),只需进行运算,例如FOO=$COUNTERFOO=$((COUNTER++))
  3. Double -a而不是在双括号内的&&,请使用-ne而不是!=在双括号[[]]中。(字符串使用==!= )

例如……

代码语言:javascript
复制
while [[ $ENDPOINT_STATUS -ne 0 ]] && [[ $COUNTER -lt 5 ]]

或者..。

代码语言:javascript
复制
while [[ $ENDPOINT_STATUS -a $COUNTER -lt 5 ]]

Test Operators

Arithmetic and String Comparison

http://tldp.org/LDP/abs/html/testconstructs.html#EX10

(第三个链接被拒绝lol)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29190593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档