mirror of
https://github.com/oqyude/nixos.git
synced 2026-10-07 20:47:14 +03:00
3x-ui fix
This commit is contained in:
+12
-19
@@ -19,7 +19,7 @@ in
|
||||
unitConfig.RequiresMountsFor = [ ];
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
# Только по таймеру: НЕ блокируем boot и активацию nixos-rebuild.
|
||||
script = ''
|
||||
set -euo pipefail
|
||||
|
||||
@@ -29,31 +29,21 @@ in
|
||||
SSH_CMD="$SSH \
|
||||
-o BatchMode=yes \
|
||||
-o ConnectTimeout=5 \
|
||||
-o ServerAliveInterval=5 \
|
||||
-o ServerAliveCountMax=3 \
|
||||
-o StrictHostKeyChecking=no"
|
||||
|
||||
echo "Waiting for server..."
|
||||
|
||||
for i in $(seq 1 60); do
|
||||
echo "Attempt $i"
|
||||
|
||||
if $SSH_CMD ${serverAddress} true >/dev/null 2>&1; then
|
||||
echo "Server available"
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 5
|
||||
done
|
||||
|
||||
# final check
|
||||
$SSH_CMD ${serverAddress} true >/dev/null 2>&1
|
||||
|
||||
mkdir -p "${nodeDir}"
|
||||
|
||||
# best-effort: сервер недоступен -> выходим сразу, никаких циклов ожидания
|
||||
if ! $SSH_CMD ${serverAddress} true >/dev/null 2>&1; then
|
||||
echo "Server ${serverAddress} unreachable, skipping sync"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -d "${nodeDir}" ] || [ -z "$(ls -A "${nodeDir}")" ]; then
|
||||
echo "Pull <- ${serverAddress}"
|
||||
|
||||
mkdir -p "${nodeDir}"
|
||||
|
||||
$RSYNC \
|
||||
-e "$SSH_CMD" \
|
||||
-a \
|
||||
@@ -77,6 +67,9 @@ in
|
||||
Nice = 10;
|
||||
CPUQuota = "5%";
|
||||
IOSchedulingClass = "idle";
|
||||
# страховка от зависшего rsync/ssh; легитимная большая синхронизация
|
||||
# укладывается в это окно (на фоне idle-приоритета)
|
||||
TimeoutStartSec = 600;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user