~增加开机启动时的联网检测机制,以修复部分设备开机自启失败的问题
~尝试增加启动等待时长至10s ~将singbox内核DNS的默认reverse_mapping及independent_cache功能设置为false ~移除了wget命令的重试次数,以兼容更多设备 ~修复部分脚本语法错误
This commit is contained in:
@@ -193,7 +193,7 @@ start_core(){
|
|||||||
${CRASHDIR}/start.sh start
|
${CRASHDIR}/start.sh start
|
||||||
#设置循环检测以判定服务启动是否成功
|
#设置循环检测以判定服务启动是否成功
|
||||||
i=1
|
i=1
|
||||||
while [ -z "$test" -a "$i" -lt 5 ];do
|
while [ -z "$test" -a "$i" -lt 10 ];do
|
||||||
sleep 1
|
sleep 1
|
||||||
if curl --version > /dev/null 2>&1;then
|
if curl --version > /dev/null 2>&1;then
|
||||||
test=$(curl -s http://127.0.0.1:${db_port}/configs | grep -o port)
|
test=$(curl -s http://127.0.0.1:${db_port}/configs | grep -o port)
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ logger(){ #日志工具
|
|||||||
if curl --version >/dev/null 2>&1;then
|
if curl --version >/dev/null 2>&1;then
|
||||||
curl -kfsSl -X POST --connect-timeout 3 -H "Content-Type: application/json; charset=utf-8" "$1" -d "$2" >/dev/null 2>&1
|
curl -kfsSl -X POST --connect-timeout 3 -H "Content-Type: application/json; charset=utf-8" "$1" -d "$2" >/dev/null 2>&1
|
||||||
elif wget --version >/dev/null 2>&1;then
|
elif wget --version >/dev/null 2>&1;then
|
||||||
wget -Y on -q --timeout=3 -t 1 --method=POST --header="Content-Type: application/json; charset=utf-8" --body-data="$2" "$1"
|
wget -Y on -q --timeout=3 --method=POST --header="Content-Type: application/json; charset=utf-8" --body-data="$2" "$1"
|
||||||
else
|
else
|
||||||
echo "找不到有效的curl或wget应用,请先安装!"
|
echo "找不到有效的curl或wget应用,请先安装!"
|
||||||
fi
|
fi
|
||||||
@@ -650,8 +650,8 @@ EOF
|
|||||||
{ "query_type": [ "A", "AAAA" ], "server": "dns_fakeip", "rewrite_ttl": 1 }
|
{ "query_type": [ "A", "AAAA" ], "server": "dns_fakeip", "rewrite_ttl": 1 }
|
||||||
],
|
],
|
||||||
"final": "dns_direct",
|
"final": "dns_direct",
|
||||||
"independent_cache": true,
|
"independent_cache": false,
|
||||||
"reverse_mapping": true,
|
"reverse_mapping": false,
|
||||||
"fakeip": { "enabled": true, "inet4_range": "198.18.0.0/16", "inet6_range": "fc00::/16" }
|
"fakeip": { "enabled": true, "inet4_range": "198.18.0.0/16", "inet6_range": "fc00::/16" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1573,13 +1573,26 @@ singbox_check(){ #singbox启动前检查
|
|||||||
[ -n "$(cat ${CRASHDIR}/jsons/*.json | grep -oEi '"geosite":')" ] && ckgeo geosite.db geosite_cn.db
|
[ -n "$(cat ${CRASHDIR}/jsons/*.json | grep -oEi '"geosite":')" ] && ckgeo geosite.db geosite_cn.db
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
network_check(){ #检查是否联网
|
||||||
|
for host in 223.5.5.5 114.114.114.114 1.2.4.8 dns.alidns.com doh.pub doh.360.cn;do
|
||||||
|
ping -c 3 $host >/dev/null 2>&1 && exit 0
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
logger "当前设备无法连接网络,已取消开机启动!" 33
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
bfstart(){ #启动前
|
bfstart(){ #启动前
|
||||||
routing_mark=$((fwmark + 2))
|
routing_mark=$((fwmark + 2))
|
||||||
|
#启动前等待
|
||||||
|
[ ! -f ${TMPDIR}/crash_start_time ] && {
|
||||||
#延迟启动
|
#延迟启动
|
||||||
[ ! -f ${TMPDIR}/crash_start_time ] && [ -n "$start_delay" ] && [ "$start_delay" -gt 0 ] && {
|
[ -n "$start_delay" ] && [ "$start_delay" -gt 0 ] && {
|
||||||
logger "ShellCrash将延迟$start_delay秒启动" 31 pushoff
|
logger "ShellCrash将延迟$start_delay秒启动" 31 pushoff
|
||||||
sleep $start_delay
|
sleep $start_delay
|
||||||
}
|
}
|
||||||
|
#检测网络连接
|
||||||
|
network_check
|
||||||
|
}
|
||||||
[ ! -d ${BINDIR}/ui ] && mkdir -p ${BINDIR}/ui
|
[ ! -d ${BINDIR}/ui ] && mkdir -p ${BINDIR}/ui
|
||||||
[ -z "$crashcore" ] && crashcore=clash
|
[ -z "$crashcore" ] && crashcore=clash
|
||||||
#执行条件任务
|
#执行条件任务
|
||||||
@@ -1636,7 +1649,7 @@ afstart(){ #启动后
|
|||||||
[ -z "$firewall_area" ] && firewall_area=1
|
[ -z "$firewall_area" ] && firewall_area=1
|
||||||
#设置循环检测面板端口以判定服务启动是否成功
|
#设置循环检测面板端口以判定服务启动是否成功
|
||||||
i=1
|
i=1
|
||||||
while [ -z "$test" -a "$i" -lt 5 ];do
|
while [ -z "$test" -a "$i" -lt 10 ];do
|
||||||
sleep 1
|
sleep 1
|
||||||
if curl --version > /dev/null 2>&1;then
|
if curl --version > /dev/null 2>&1;then
|
||||||
test=$(curl -s http://127.0.0.1:${db_port}/configs | grep -o port)
|
test=$(curl -s http://127.0.0.1:${db_port}/configs | grep -o port)
|
||||||
@@ -1843,7 +1856,7 @@ webget)
|
|||||||
[ "$4" = "echooff" ] && progress='-q' || progress='-q --show-progress'
|
[ "$4" = "echooff" ] && progress='-q' || progress='-q --show-progress'
|
||||||
[ "$5" = "rediroff" ] && redirect='--max-redirect=0' || redirect=''
|
[ "$5" = "rediroff" ] && redirect='--max-redirect=0' || redirect=''
|
||||||
[ "$6" = "skipceroff" ] && certificate='' || certificate='--no-check-certificate'
|
[ "$6" = "skipceroff" ] && certificate='' || certificate='--no-check-certificate'
|
||||||
timeout='--timeout=5 -t 2'
|
timeout='--timeout=5'
|
||||||
fi
|
fi
|
||||||
[ "$4" = "echoon" ] && progress=''
|
[ "$4" = "echoon" ] && progress=''
|
||||||
[ "$4" = "echooff" ] && progress='-q'
|
[ "$4" = "echooff" ] && progress='-q'
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ setrules(){ #自定义规则
|
|||||||
'') ;;
|
'') ;;
|
||||||
*)
|
*)
|
||||||
text=$(cat $YAMLSDIR/rules.yaml | grep -Ev '^#' | sed -n "$num p" | awk '{print $2}')
|
text=$(cat $YAMLSDIR/rules.yaml | grep -Ev '^#' | sed -n "$num p" | awk '{print $2}')
|
||||||
if [ -n $text ];then
|
if [ -n "$text" ];then
|
||||||
sed -i "/$text/d" $YAMLSDIR/rules.yaml
|
sed -i "/$text/d" $YAMLSDIR/rules.yaml
|
||||||
sleep 1
|
sleep 1
|
||||||
del_rule_type
|
del_rule_type
|
||||||
@@ -676,7 +676,7 @@ setproviders(){ #自定义providers
|
|||||||
[ "$res" = "1" ] && rm -rf $CRASHDIR/configs/providers.cfg
|
[ "$res" = "1" ] && rm -rf $CRASHDIR/configs/providers.cfg
|
||||||
setproviders
|
setproviders
|
||||||
;;
|
;;
|
||||||
d)
|
e)
|
||||||
echo -e "\033[33m将清空 $CRASHDIR/providers 目录下所有内容\033[0m"
|
echo -e "\033[33m将清空 $CRASHDIR/providers 目录下所有内容\033[0m"
|
||||||
read -p "是否继续?(1/0) > " res
|
read -p "是否继续?(1/0) > " res
|
||||||
[ "$res" = "1" ] && rm -rf $CRASHDIR/providers
|
[ "$res" = "1" ] && rm -rf $CRASHDIR/providers
|
||||||
@@ -1651,7 +1651,7 @@ setcustgeo(){ #下载自定义数据库文件
|
|||||||
}
|
}
|
||||||
setgeo(){ #数据库选择菜单
|
setgeo(){ #数据库选择菜单
|
||||||
source $CFG_PATH > /dev/null
|
source $CFG_PATH > /dev/null
|
||||||
[ -n "$cn_mini.mmdb_v" ] && geo_type_des=精简版 || geo_type_des=全球版
|
[ -n "$cn_mini_v" ] && geo_type_des=精简版 || geo_type_des=全球版
|
||||||
echo -----------------------------------------------
|
echo -----------------------------------------------
|
||||||
echo -e "\033[36m请选择需要更新的Geo/CN数据库文件:\033[0m"
|
echo -e "\033[36m请选择需要更新的Geo/CN数据库文件:\033[0m"
|
||||||
echo -e "\033[36m全球版GeoIP和精简版CN-IP数据库不共存\033[0m"
|
echo -e "\033[36m全球版GeoIP和精简版CN-IP数据库不共存\033[0m"
|
||||||
|
|||||||
Reference in New Issue
Block a user