~优化测试相关命令

~优化版本回退功能,现在支持回退到近期tags
~修复保守模式停止服务时未正确注销防火墙的bug
~修复小米设备因安装在u盘等导致自启命令不正确的bug
This commit is contained in:
juewuy
2026-01-21 19:05:40 +08:00
parent f7f39af5e3
commit 56cb4a327f
4 changed files with 31 additions and 19 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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