From e2d5e21ab0f3cf063f327b99aef5c62d56871ca4 Mon Sep 17 00:00:00 2001 From: Niko Marmeladkov Date: Wed, 26 Aug 2026 12:14:05 +0300 Subject: [PATCH] =?UTF-8?q?install.sh:=20pgrep=20=D0=B1=D0=B5=D0=B7=20-x?= =?UTF-8?q?=20(busybox=20=D0=BD=D0=B5=20=D0=BC=D0=B0=D1=82=D1=87=D0=B8?= =?UTF-8?q?=D1=82=20=D0=BF=D0=BE=D0=BB=D0=BD=D1=8B=D0=B9=20=D0=BF=D1=83?= =?UTF-8?q?=D1=82=D1=8C)=20=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B8=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D1=86=D0=B5=D1=81=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B2=D0=BD=D0=B5=20procd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/install.sh b/install.sh index 689d6d9..c05e7b2 100755 --- a/install.sh +++ b/install.sh @@ -745,9 +745,10 @@ status() { echo "Сервер: $HOST:$PORT" echo "Архитектура: $ARCH (sing-box $SB_VER, ipt2socks $IPT_VER)" echo "Режим: $MODE / $TUNNEL / $FW" - pgrep -x sing-box >/dev/null 2>&1 && echo "sing-box: RUNNING" || echo "sing-box: STOPPED" + # pgrep без -x: busybox с argv[0]=/usr/bin/sing-box не матчит -x + pgrep sing-box >/dev/null 2>&1 && echo "sing-box: RUNNING" || echo "sing-box: STOPPED" if [ "$TUNNEL" = ipt2socks ]; then - pgrep -x ipt2socks >/dev/null 2>&1 && echo "ipt2socks: RUNNING" || echo "ipt2socks: STOPPED" + pgrep ipt2socks >/dev/null 2>&1 && echo "ipt2socks: RUNNING" || echo "ipt2socks: STOPPED" fi if [ -r /var/log/nikovpn.log ]; then echo "--- последние строки /var/log/nikovpn.log ---" @@ -772,6 +773,8 @@ uninstall() { /etc/init.d/nikovpn stop 2>/dev/null /etc/init.d/nikovpn disable 2>/dev/null fi + kill $(pgrep sing-box) 2>/dev/null + kill $(pgrep ipt2socks) 2>/dev/null nft delete table inet nikovpn 2>/dev/null rm -f /etc/nftables.d/10-nikovpn.nft for c in NIKOVPN NIKOVPN_TP NIKOVPN_UDP; do @@ -846,10 +849,14 @@ install() { esac fi - # остановить старый сервис перед перезаписью + # остановить старый сервис и процессы вне procd (иначе Text file busy + # при перезаписи бинарников и занятые порты после старта) if [ -x /etc/init.d/nikovpn ]; then /etc/init.d/nikovpn stop 2>/dev/null fi + kill $(pgrep sing-box) 2>/dev/null + kill $(pgrep ipt2socks) 2>/dev/null + sleep 1 install_bins log "Генерирую конфиг ..." @@ -862,11 +869,14 @@ install() { chmod +x "$WORK_DIR/install.sh" log "Запускаю сервис ..." + kill $(pgrep sing-box) 2>/dev/null + kill $(pgrep ipt2socks) 2>/dev/null + sleep 1 /etc/init.d/nikovpn enable 2>/dev/null /etc/init.d/nikovpn start 2>/dev/null - sleep 3 + sleep 5 - if pgrep -x sing-box >/dev/null 2>&1; then + if pgrep sing-box >/dev/null 2>&1; then log "sing-box запущен. Прозрачный прокси активен." else warn "sing-box не запустился. Смотрите: cat /var/log/nikovpn.log"