diff --git a/luci-app-passwall/root/usr/share/passwall/app.sh b/luci-app-passwall/root/usr/share/passwall/app.sh index 2f14ea2..2c32061 100755 --- a/luci-app-passwall/root/usr/share/passwall/app.sh +++ b/luci-app-passwall/root/usr/share/passwall/app.sh @@ -1236,13 +1236,17 @@ socks_node_switch() { local flag new_node eval_set_val $@ [ -n "$flag" ] && [ -n "$new_node" ] && { + local prefix pf filename # 结束 SS 插件进程 - local pf; for pf in "$TMP_PATH"/{,HTTP_}SOCKS_"$flag"_plugin.pid; do + for prefix in "" "HTTP_"; do + pf="$TMP_PATH/${prefix}SOCKS_${flag}_plugin.pid" [ -s "$pf" ] && kill -9 "$(head -n1 "$pf")" >/dev/null 2>&1 done pgrep -af "$TMP_BIN_PATH" | awk -v P1="${flag}" 'BEGIN{IGNORECASE=1}$0~P1 && !/acl\/|acl_/{print $1}' | xargs kill -9 >/dev/null 2>&1 - rm -rf "$TMP_PATH"/{,HTTP_,HTTP2}SOCKS_"$flag"* + for prefix in "" "HTTP_" "HTTP2"; do + rm -rf "$TMP_PATH/${prefix}SOCKS_${flag}"* + done for filename in $(ls ${TMP_SCRIPT_FUNC_PATH}); do cmd=$(cat ${TMP_SCRIPT_FUNC_PATH}/${filename})