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