diff --git a/FORK-CHANGELOG.md b/FORK-CHANGELOG.md index 8ba8203..4994c6f 100644 --- a/FORK-CHANGELOG.md +++ b/FORK-CHANGELOG.md @@ -10,6 +10,16 @@ канал обновлений и оговорки. Две картинки — наши (`manuals/assets/fork-banner.svg` и `manuals/assets/script-3x-ui-local.svg`, терминал собран из настоящего вывода скрипта). * Шов в README больше не нужен (`tools/fork_apply.py`): файл наш целиком, как `kit-local.sh`. +## v1.2.11: снос знает про kit-limit и находит свои службы сам + +* В списке сноса не было `kit-limit.service` и `kit-limit.timer` (юнит «общий лимит трафика» из kit) — + его создаёт установка, а `kit local uninstall` его не убирал. Из-за этого после сноса оставался + работающий таймер, который раз в 5 минут дёргал уже удалённый `kit` и падал. +* Теперь снос берёт список служб **и из явного перечня, и по шаблонам `x-ui*`/`kit*`** из systemd — + новая служба, добавленная автором позже, не останется незамеченной. Проверка после сноса ищет + по тем же шаблонам и показывает всё найденное. +* Флаг `--clean` у установщика использует тот же список. + ## v1.2.10: убран мусор в выводе установщика * В шапке `scripts/3x-ui-local.sh` один из флагов потерял `#` и **при каждом запуске печаталось diff --git a/VERSION b/VERSION index 963ed7c..c114700 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.2.10 +1.2.11 diff --git a/scripts/3x-ui-local.sh b/scripts/3x-ui-local.sh index 0b16242..b52705d 100644 --- a/scripts/3x-ui-local.sh +++ b/scripts/3x-ui-local.sh @@ -43,7 +43,7 @@ set -Eeuo pipefail -KIT_VERSION="1.2.10" # версия сборки форка; должна совпадать с VERSION релиза +KIT_VERSION="1.2.11" # версия сборки форка; должна совпадать с VERSION релиза GITEA="${KIT_FORK_BASE:-https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS}" NS="3x-ui-kit-release" SIG_ID="releases@3x-ui-kit" @@ -288,7 +288,8 @@ ask_protocols() { # печатает итоговый список через з clean_previous() { say "убираю прошлую установку (--clean)" local s p - for s in x-ui kit-sub kit-update.timer kit-update.service; do + for s in x-ui kit-sub kit-update.timer kit-update.service kit-limit.timer kit-limit.service \ + $(systemctl list-unit-files --no-legend 2>/dev/null | awk '{print $1}' | grep -E '^(x-ui|kit-|kit\.)' | grep -E '\.(service|timer)$'); do systemctl list-unit-files 2>/dev/null | grep -q "^$s" || continue systemctl disable --now "$s" >/dev/null 2>&1 || true printf ' остановлено: %s\n' "$s" @@ -296,7 +297,8 @@ clean_previous() { for p in /usr/local/x-ui /etc/x-ui /usr/bin/x-ui /usr/bin/x-ui.new /etc/systemd/system/x-ui.service \ /usr/local/bin/kit /usr/local/lib/kit /usr/local/lib/kit-sub /etc/kit /etc/kit-sub \ /etc/systemd/system/kit-sub.service /etc/systemd/system/kit-update.service \ - /etc/systemd/system/kit-update.timer \ + /etc/systemd/system/kit-update.timer /etc/systemd/system/kit-limit.service \ + /etc/systemd/system/kit-limit.timer \ /etc/cron.d/kit-nginx-reload /etc/cron.d/kit-xui-menu /etc/cron.d/kit-sub-cert \ /etc/nginx/kit-stream.conf /etc/nginx/conf.d/kit.conf /var/www/kit \ /root/3x-ui.txt /root/cert /var/log/kit-install-check.log \ diff --git a/scripts/3x-ui.sh b/scripts/3x-ui.sh index 8071d63..0692f2c 100755 --- a/scripts/3x-ui.sh +++ b/scripts/3x-ui.sh @@ -30,7 +30,7 @@ wait_apt_idle() { XUI_VERSION="v3.9.0" # SHA256 установщика 3X-UI этой версии: тег могут передвинуть, а хеш – нет (проверено 2026-09-30). XUI_INSTALL_SHA256="18616fe26c8f6c92db6daa2dcd7cd53c5143ee69ecfd26d8ea6dc9b2c78607a6" -KIT_VERSION="1.2.10" +KIT_VERSION="1.2.11" # kit и kit-sub берём из того же релиза, что и этот скрипт, а не из меняющейся ветки main. KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$KIT_VERSION" # Ядро Xray для панели. С 26.7.x клиенты на Mihomo и sing-box (Hiddify, FlClash, diff --git a/scripts/hysteria2.sh b/scripts/hysteria2.sh index 2e898d4..9c42ad6 100755 --- a/scripts/hysteria2.sh +++ b/scripts/hysteria2.sh @@ -8,7 +8,7 @@ # Код выхода 1 при любом запуске (и при `__update_binary`) – старый `hy2 update` на нём # останавливается и не заменяет команду hy2. -KIT_VERSION="1.2.10" +KIT_VERSION="1.2.11" cat >&2 <<'MSG' Отдельный установщик Hysteria2 больше не поддерживается. diff --git a/scripts/kit-local.sh b/scripts/kit-local.sh index b4e5b84..82ca456 100644 --- a/scripts/kit-local.sh +++ b/scripts/kit-local.sh @@ -929,13 +929,20 @@ kit_local_uninstall() { *) kl_die "kit local uninstall [--dry-run] [--reset-ssh]"; return 1 ;; esac - local -a svc=(x-ui kit-sub kit-update.timer kit-update.service) + # Службы: и явный список, и всё, что найдётся по нашим шаблонам (чтобы новые юниты kit не оставались). + local -a svc=(x-ui.service kit-sub.service kit-update.timer kit-update.service kit-limit.timer kit-limit.service) + local u + for u in $(systemctl list-unit-files --no-legend 2>/dev/null | awk '{print $1}' \ + | grep -E '^(x-ui|kit-|kit\.)' | grep -E '\.(service|timer)$'); do + [[ " ${svc[*]} " == *" $u "* ]] || svc+=("$u") + done # Список собран по коду установщика (scripts/3x-ui.sh) и нашего слоя: убираем всё, что они создают. local -a paths=( /usr/local/x-ui /etc/x-ui /usr/bin/x-ui /usr/bin/x-ui.new /etc/systemd/system/x-ui.service /usr/local/bin/kit /usr/local/lib/kit /usr/local/lib/kit-sub /etc/kit /etc/kit-sub /etc/systemd/system/kit-sub.service /etc/systemd/system/kit-update.service - /etc/systemd/system/kit-update.timer + /etc/systemd/system/kit-update.timer /etc/systemd/system/kit-limit.service + /etc/systemd/system/kit-limit.timer /etc/cron.d/kit-nginx-reload /etc/cron.d/kit-xui-menu /etc/cron.d/kit-sub-cert /etc/nginx/kit-stream.conf /etc/nginx/conf.d/kit.conf /var/www/kit /root/3x-ui.txt /root/cert /root/.acme.sh /etc/letsencrypt /var/log/kit-install-check.log @@ -1043,8 +1050,9 @@ kit_local_uninstall() { if [[ -f /root/3x-ui.txt && -x /usr/local/x-ui/x-ui ]]; then kl_warn "установщик всё ещё считает панель установленной"; left=1 fi - for s in "${svc[@]}"; do - systemctl list-unit-files 2>/dev/null | grep -q "^$s" && { kl_warn "осталась служба: $s"; left=1; } + for s in $(systemctl list-unit-files --no-legend 2>/dev/null | awk '{print $1}' \ + | grep -E '^(x-ui|kit-|kit\.)' | grep -E '\.(service|timer)$'); do + kl_warn "осталась наша служба: $s"; left=1 done found=$(ls -d /etc/kit* /usr/local/lib/kit* /usr/local/bin/kit /etc/cron.d/kit-* /var/www/kit \ /root/3x-ui.txt /root/cert /etc/x-ui /usr/local/x-ui 2>/dev/null | head -20) diff --git a/scripts/kit.sh b/scripts/kit.sh index d5e65be..e87750f 100644 --- a/scripts/kit.sh +++ b/scripts/kit.sh @@ -12,7 +12,7 @@ set -Eeuo pipefail export LC_ALL=C.UTF-8 # ширина колонок по символам, а не байтам -KIT_VERSION="1.2.10" +KIT_VERSION="1.2.11" KIT_RAW="https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/branch/main" # Файлы новой версии берём из её тега, а не из меняющейся ветки main. kit_ref_raw() { echo "https://git.rukavishnikoff.ru/hacker07/3X-UI_autoVPS/raw/tag/v$1"; }