From 56cb4a327f9db89813f7378206174d748f9c0e55 Mon Sep 17 00:00:00 2001 From: juewuy Date: Wed, 21 Jan 2026 19:05:40 +0800 Subject: [PATCH] =?UTF-8?q?~=E4=BC=98=E5=8C=96=E6=B5=8B=E8=AF=95=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=91=BD=E4=BB=A4=20~=E4=BC=98=E5=8C=96=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=9B=9E=E9=80=80=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=8E=B0?= =?UTF-8?q?=E5=9C=A8=E6=94=AF=E6=8C=81=E5=9B=9E=E9=80=80=E5=88=B0=E8=BF=91?= =?UTF-8?q?=E6=9C=9Ftags=20~=E4=BF=AE=E5=A4=8D=E4=BF=9D=E5=AE=88=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=81=9C=E6=AD=A2=E6=9C=8D=E5=8A=A1=E6=97=B6=E6=9C=AA?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E6=B3=A8=E9=94=80=E9=98=B2=E7=81=AB=E5=A2=99?= =?UTF-8?q?=E7=9A=84bug=20~=E4=BF=AE=E5=A4=8D=E5=B0=8F=E7=B1=B3=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=9B=A0=E5=AE=89=E8=A3=85=E5=9C=A8u=E7=9B=98?= =?UTF-8?q?=E7=AD=89=E5=AF=BC=E8=87=B4=E8=87=AA=E5=90=AF=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E4=B8=8D=E6=AD=A3=E7=A1=AE=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/menu.sh | 14 ++++++++++---- scripts/menus/9_upgrade.sh | 11 ++++++----- scripts/start.sh | 13 +++++++------ scripts/starts/snapshot_init.sh | 12 ++++++++---- 4 files changed, 31 insertions(+), 19 deletions(-) diff --git a/scripts/menu.sh b/scripts/menu.sh index 86dac1e0..741be0c9 100644 --- a/scripts/menu.sh +++ b/scripts/menu.sh @@ -240,18 +240,24 @@ case "$1" in main_menu ;; -t) - shtype=sh && [ -n "$(ls -l /bin/sh | grep -o dash)" ] && shtype=bash + shtype=sh + ckcmd bash && shtype=bash $shtype -x "$CRASHDIR"/menu.sh ;; -s) - "$CRASHDIR"/start.sh $2 $3 $4 $5 $6 + "$CRASHDIR"/start.sh "$2" "$3" "$4" "$5" "$6" ;; -i) . "$CRASHDIR"/init.sh 2>/dev/null ;; -st) - shtype=sh && [ -n "$(ls -l /bin/sh | grep -o dash)" ] && shtype=bash - $shtype -x "$CRASHDIR"/start.sh $2 $3 $4 $5 $6 + shtype=sh + ckcmd bash && shtype=bash + "$shtype" -x "$CRASHDIR"/starts/bfstart.sh + . "$CRASHDIR"/starts/start_legacy.sh + start_legacy "$COMMAND" 'shellcrash' + "$shtype" -x "$CRASHDIR"/starts/afstart.sh + "$CRASHDIR"/start.sh stop ;; -d) shtype=sh && [ -n "$(ls -l /bin/sh | grep -o dash)" ] && shtype=bash diff --git a/scripts/menus/9_upgrade.sh b/scripts/menus/9_upgrade.sh index f7b8cca8..3d5c9f8a 100644 --- a/scripts/menus/9_upgrade.sh +++ b/scripts/menus/9_upgrade.sh @@ -1041,16 +1041,17 @@ setserver() { echo "-----------------------------------------------" if [ -n "$url_id" ] && [ "$url_id" -lt 200 ];then echo -ne "\033[32m正在获取版本信息!\033[0m\r" - get_bin "$TMPDIR"/release_version bin/release_version + . "$CRASHDIR"/libs/web_get_lite.sh + web_get_lite https://github.com/juewuy/ShellCrash/tags | grep -o 'releases/tag/.*data'|awk -F '/' '{print $3}'|sed 's/".*//g' > "$TMPDIR"/tags if [ "$?" = "0" ];then - echo -e "\033[31m请选择想要回退至的稳定版版本:\033[0m" - cat "$TMPDIR"/release_version | awk '{print " "NR" "$1}' + echo -e "\033[31m请选择想要回退至的具体版本:\033[0m" + cat "$TMPDIR"/tags | awk '{print " "NR" "$1}' echo -e " 0 返回上级菜单" read -p "请输入对应数字 > " num if [ -z "$num" -o "$num" = 0 ]; then continue - elif [ $num -le $(cat "$TMPDIR"/release_version 2>/dev/null | awk 'END{print NR}') ]; then - release_type=$(cat "$TMPDIR"/release_version | awk '{print $1}' | sed -n "$num"p) + elif [ $num -le $(cat "$TMPDIR"/tags 2>/dev/null | awk 'END{print NR}') ]; then + release_type=$(cat "$TMPDIR"/tags | awk '{print $1}' | sed -n "$num"p) update_url='' saveserver else diff --git a/scripts/start.sh b/scripts/start.sh index e046040f..e9ee6403 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -72,9 +72,10 @@ stop) cronset '运行时每' cronset '流媒体预解析' #多种方式结束进程 - if [ -f "$TMPDIR/shellcrash.pid" ];then - kill -TERM "$(cat "$TMPDIR/shellcrash.pid")" - rm -f "$TMPDIR/shellcrash.pid" + if [ -f "$TMPDIR/shellcrash.pid" ];then + kill -TERM "$(cat "$TMPDIR/shellcrash.pid")" + rm -f "$TMPDIR/shellcrash.pid" + stop_firewall elif [ "$USER" = "root" ] && grep -q 'systemd' /proc/1/comm; then systemctl stop shellcrash.service >/dev/null 2>&1 elif [ -f /etc/rc.common ] && grep -q 'procd' /proc/1/comm; then @@ -85,7 +86,7 @@ stop) elif rc-status -r >/dev/null 2>&1; then rc-service shellcrash stop >/dev/null 2>&1 else - stop_firewall #清理路由策略 + stop_firewall fi killall CrashCore 2>/dev/null #清理缓存目录 @@ -115,8 +116,8 @@ debug) else sed -i "s/log-level: info/log-level: $2/" "$TMPDIR"/config.yaml fi - [ "$3" = flash ] && dir=$CRASHDIR || dir=$TMPDIR - $COMMAND >${dir}/debug.log 2>&1 & + [ "$3" = flash ] && dir="$CRASHDIR" || dir="$TMPDIR" + $COMMAND >"$dir"/debug.log 2>&1 & sleep 2 logger "已运行debug模式!如需停止,请使用重启/停止服务功能!" 33 else diff --git a/scripts/starts/snapshot_init.sh b/scripts/starts/snapshot_init.sh index 0d566b34..f578cfd3 100644 --- a/scripts/starts/snapshot_init.sh +++ b/scripts/starts/snapshot_init.sh @@ -1,9 +1,14 @@ #!/bin/sh # Copyright (C) Juewuy -CRASHDIR="$(uci get firewall.ShellCrash.path | sed 's/\/starts\/snapshot_init.sh//')" - -[ -f "$CRASHDIR"/configs/ShellCrash.cfg ] && . "$CRASHDIR"/configs/ShellCrash.cfg +CRASHDIR="$(uci get firewall.ShellCrash.path | sed 's/\/starts.*//')" +i=0 +while [ ! -f "$CRASHDIR/configs/ShellCrash.cfg" ]; do + [ $i -gt 20 ] && exit 1 + i=$((i + 1)) + sleep 3 +done +. "$CRASHDIR"/configs/ShellCrash.cfg autoSSH(){ #自动开启SSH @@ -78,7 +83,6 @@ init(){ while ! ip a| grep -q lan; do sleep 10 done - sleep 20 autoSSH #软固化功能 auto_clean #自动清理 [ -s "$CRASHDIR"/start.sh ] && auto_start