install.sh: pgrep без -x (busybox не матчит полный путь) и добивание процессов вне procd

This commit is contained in:
Niko Marmeladkov 2026-08-26 12:14:05 +03:00
parent f0bd9152ef
commit e2d5e21ab0
Signed by: Niko
GPG key ID: E3B955F9442D44E3

View file

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