From 947d8343fc46ba942eaed1041ac179e502284754 Mon Sep 17 00:00:00 2001 From: wanhebin Date: Thu, 16 Feb 2023 18:21:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=90=AF=E5=8A=A8=E8=84=9A?= =?UTF-8?q?=E6=9C=AC=E5=AF=B9=E8=AE=A2=E9=98=85=E5=9C=B0=E5=9D=80=E7=9A=84?= =?UTF-8?q?=E6=8E=A2=E6=B5=8B=E3=80=81=E4=B8=8B=E8=BD=BD=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.sh | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/start.sh b/start.sh index 7fad217..73f7bff 100755 --- a/start.sh +++ b/start.sh @@ -30,7 +30,8 @@ action() { # 判断命令是否正常执行 函数 if_success() { - if [ $? -eq 0 ]; then + ReturnStatus=$3 + if [ $ReturnStatus -eq 0 ]; then action "$1" /bin/true else action "$2" /bin/false @@ -52,15 +53,33 @@ unset no_proxy # 检查url是否有效 Text1="Clash订阅地址可访问!" Text2="Clash订阅地址不可访问!" -curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} $URL | grep '[23][0-9][0-9]' &>/dev/null -if_success $Text1 $Text2 +for i in {1..10} +do + curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} $URL | grep '[23][0-9][0-9]' &>/dev/null + ReturnStatus=$? + if [ $ReturnStatus -eq 0 ]; then + break + else + continue + fi +done +if_success $Text1 $Text2 $ReturnStatus # 拉取更新config.yml文件 Text3="配置文件config.yaml下载成功!" Text4="配置文件config.yaml下载失败,退出启动!" -# wget -q -O $Temp_Dir/clash.yaml $URL -curl -s -o $Temp_Dir/clash.yaml $URL -if_success $Text3 $Text4 +for i in {1..10} +do + # wget -q -O $Temp_Dir/clash.yaml $URL + curl -s -o $Temp_Dir/clash.yaml $URL + ReturnStatus=$? + if [ $ReturnStatus -eq 0 ]; then + break + else + continue + fi +done +if_success $Text3 $Text4 $ReturnStatus # 取出代理相关配置 sed -n '/^proxies:/,$p' $Temp_Dir/clash.yaml > $Temp_Dir/proxy.txt @@ -84,10 +103,12 @@ Text6="服务启动失败!" get_arch=`/bin/arch` if [[ $get_arch =~ "x86_64" ]]; then nohup $Server_Dir/bin/clash-linux-amd64 -d $Conf_Dir &> $Log_Dir/clash.log & - if_success $Text5 $Text6 + ReturnStatus=$? + if_success $Text5 $Text6 $ReturnStatus elif [[ $get_arch =~ "aarch64" ]]; then nohup $Server_Dir/bin/clash-linux-armv7 -d $Conf_Dir &> $Log_Dir/clash.log & - if_success $Text5 $Text6 + ReturnStatus=$? + if_success $Text5 $Text6 $ReturnStatus else echo -e "\033[31m[ERROR] Unsupported CPU Architecture!\033[0m" exit 1