首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >保存运行bash脚本退出代码问题

保存运行bash脚本退出代码问题
EN

Stack Overflow用户
提问于 2019-02-24 17:53:18
回答 1查看 2K关注 0票数 2

我正在运行保持,以平衡虚拟I。

我编写了一个简单的脚本检查是否设置了变量,如果是的话,“绕过”节点并将故障转移到“备份”节点E 211。它从我能用正确的变量判断的东西中退出。

但是并没有看到显然看到了退出代码。我哪里出错了?脚本是从keepalived.conf文件中运行的-是的,它被设置为可执行文件。如果我“破坏”了代码(有语法错误),它就会适当地失败。

代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/bash
set -e
echo "$vrrpTVIPS"; #for testing purposes only

if [ "$vrrpTVIPS" != "bypass" ]; then
 exit 0
else
 exit 1
fi

应该发生的是,如果是vrrpTVIPS == bypass,这个脚本应该与代码1一起退出(当我亲自运行它并检查我得到1echo $?时它就是这样做的)。为什么保存的脚本没有看到这一点并采取相应的行动(它记录脚本退出代码,并且它没有退出状态1的任何条目)?

我也尝试过倒车,但没有结果:

代码语言:javascript
代码运行次数:0
运行
复制
#!/bin/bash
set -e
echo "$vrrpTVIPS";

if [ "$vrrpTVIPS" == "bypass" ]; then
 exit 1
else
 exit 0
fi

添加信息:这是来自keepalived.conf in /etc/keepalived/keepalived.conf的相关信息

代码语言:javascript
代码运行次数:0
运行
复制
vrrp_script check_test_override {
        script "/usr/sbin/chktest.sh"
        internal 2
}

在文件后面的V实例配置中:

代码语言:javascript
代码运行次数:0
运行
复制
track_script {
check_test_override
}
EN

回答 1

Stack Overflow用户

发布于 2019-02-24 19:20:49

vrrp_script采用一个rise和/或fall参数,以及设置OK/KO转换所需的错误或成功次数的weight,以及根据此更改赋予多少优先级。

我认为这两者在默认情况下都是未定义的,所以您必须显式地定义它们。例如,要打开单个OK/failure退出代码,设置:

代码语言:javascript
代码运行次数:0
运行
复制
vrrp_script check_test_override {
        script "/usr/sbin/chktest.sh"
        interval 2
        weight 2
        rise 1
        fall 1
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54854780

复制
相关文章

相似问题

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