2
我有一个简单的bash脚本,假设它监视mysql是否启动或关闭。如果发生故障,我想也停止运行HAProxy。下面是我简单的bash脚本:Linux bash脚本代理怪异
#!/bin/bash
nc -z 127.0.0.1 3306
rt_val=$?
msg=$(sudo service haproxy stop);
if [ $rt_val != 0 ]; then
eval $msg
exit 3
else
exit 0
fi
MySQL运行或不运行部分工作正常。这是停止HAProxy部分,似乎有问题。发生什么事是当mysql停止时HAProxy停止。但是,当我启动MySQL和HAProxy时,即使MySQL启动并运行,脚本似乎仍会停止HAProxy。
推荐在字符串中存储命令不是一个好主意。函数或数组** **更好,更强大。有关此问题的更多详细信息,请参见[Bash FAQ 050](http://mywiki.wooledge.org/BashFAQ/050)。 (它适用于这种简单的情况,但对于更复杂的情况失败,所以最好总是避免它。) –
@EtanReisner:当然可以。我会尽力改正。 –
谢谢迈克尔。使用该功能的作品。第二件代码实际上没有。 –