fix(tailscale): готовность демона, флаги tailscaled и нейтрализация standalone-сервиса

- удалён неподдерживаемый флаг --netfilter-mode=on, вызывавший ошибку старта на OpenWrt
- проба готовности парсит status --json (BackendState), а не exit-code: незалогиненный узел отвечает NeedsLogin с non-zero и раньше считался неготовым — корень «did not become ready» при первом входе
- перед стартом своего tailscaled останавливается и отключается init-скрипт официального пакета: его демон держал UDP 41641, из-за чего наш умирал мгновенно
- при сбое старта в лог пишется хвост tailscaled.log для диагностики
This commit is contained in:
Dushnilin
2026-08-26 19:03:16 +03:00
parent 9bc6fe28fd
commit 6a85384111
2 changed files with 60 additions and 5 deletions
+12
View File
@@ -89,7 +89,19 @@ run() {
run installed || fail "installed must succeed with stubs present"
# --- start ------------------------------------------------------------------
# Fake official init script: must be stopped+disabled before our daemon starts.
INIT_LOG="$WORK_DIR/init.log"
mkdir -p /etc/init.d
cat >"/etc/init.d/tailscale" <<EOF
#!/bin/sh
printf '%s\n' "\$*" >> '$INIT_LOG'
exit 0
EOF
chmod +x "/etc/init.d/tailscale"
run start-runtime || fail "start-runtime exited non-zero"
grep -Fq "stop" "$INIT_LOG" || fail "standalone tailscale service was not stopped"
grep -Fq "disable" "$INIT_LOG" || fail "standalone tailscale service was not disabled"
PID_FILE="$WORK_DIR/run/ts_native/tailscaled.pid"
[ -f "$PID_FILE" ] || fail "pid file was not written"