diff --git a/scripts/getdate.sh b/scripts/getdate.sh index fc10973..4af97ec 100644 --- a/scripts/getdate.sh +++ b/scripts/getdate.sh @@ -348,7 +348,15 @@ gen_clash_providers(){ #生成clash的providers配置文件 url: "https://www.gstatic.com/generate_204" interval: 600 EOF -} + [ "$crashcore" = 'meta' ] && { + [ "$skip_cert" = "已开启" ] && skip_cert_verify='skip-cert-verify: true' + cat >> $TMPDIR/providers/providers.yaml < " res diff --git a/scripts/menu.sh b/scripts/menu.sh index f5a6b99..f909f81 100644 --- a/scripts/menu.sh +++ b/scripts/menu.sh @@ -175,7 +175,12 @@ start_core(){ core_config=${CRASHDIR}/yamls/config.yaml fi echo ----------------------------------------------- - if [ -s $core_config -o -n "$Url" -o -n "$Https" ];then + if [ ! -s $core_config -a -s $CRASHDIR/configs/providers.cfg ];then + echo -e "\033[33m没有找到${crashcore}配置文件,尝试生成providers配置文件!\033[0m" + [ "$crashcore" = singboxp ] && coretype=singbox + [ "$crashcore" = meta -o "$crashcore" = clashpre ] && coretype=clash + source ${CRASHDIR}/getdate.sh && gen_${coretype}_providers + elif [ -s $core_config -o -n "$Url" -o -n "$Https" ];then ${CRASHDIR}/start.sh start #设置循环检测以判定服务启动是否成功 i=1 @@ -1207,7 +1212,6 @@ normal_set(){ #基础设置 } set_dns_mod(){ - [ "$dns_mod" = mix ] && [ "$crashcore" != singbox -o "$crashcore" != singboxp ] && dns_mod=redir_host echo ----------------------------------------------- echo -e "当前DNS运行模式为:\033[47;30m $dns_mod \033[0m" echo -e "\033[33m切换模式后需要手动重启服务以生效!\033[0m" diff --git a/scripts/start.sh b/scripts/start.sh index ef274f1..98a5841 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1776,8 +1776,10 @@ update_config(){ #更新订阅并重启 hotupdate(){ #热更新订阅 getconfig get_core_config + core_check modify_$format && \ put_save http://127.0.0.1:${db_port}/configs "{\"path\":\"${CRASHDIR}/config.$format\"}" + rm -rf ${TMPDIR}/CrashCore } set_proxy(){ #设置环境变量 getconfig @@ -1807,10 +1809,12 @@ start) elif [ -f /etc/rc.common -a "$(cat /proc/1/comm)" = "procd" ];then /etc/init.d/shellcrash start elif [ "$USER" = "root" -a "$(cat /proc/1/comm)" = "systemd" ];then - FragmentPath=$(systemctl show -p FragmentPath shellcrash | sed 's/FragmentPath=//') - [ -f $FragmentPath ] && setconfig ExecStart "$COMMAND >/dev/null" "$FragmentPath" - systemctl daemon-reload - systemctl start shellcrash.service || start_error + bfstart && { + FragmentPath=$(systemctl show -p FragmentPath shellcrash | sed 's/FragmentPath=//') + [ -f $FragmentPath ] && setconfig ExecStart "$COMMAND >/dev/null" "$FragmentPath" + systemctl daemon-reload + systemctl start shellcrash.service || start_error + } else bfstart && start_old fi