mirror of
https://github.com/anten-ka/gotelegram_pro.git
synced 2026-05-19 11:26:03 +00:00
v2.5.0: wait for telemt listener readiness
This commit is contained in:
@@ -195,18 +195,45 @@ EOF
|
||||
# previous Pro config (tls_domain=anten-ka.com) and was rejecting SNI=google.com
|
||||
# clients with unknown_sni_action=Drop even though the on-disk config said
|
||||
# tls_domain=google.com.
|
||||
wait_telemt_ready() {
|
||||
local timeout="${1:-90}"
|
||||
local port elapsed=0
|
||||
port=$(awk '
|
||||
/^\[server\]/ { in_server=1; next }
|
||||
/^\[/ && in_server { exit }
|
||||
in_server && $1 == "port" {
|
||||
sub(/^[^=]*=[[:space:]]*/, "")
|
||||
gsub(/[[:space:]]/, "")
|
||||
print
|
||||
exit
|
||||
}
|
||||
' "$TELEMT_CONFIG" 2>/dev/null)
|
||||
[[ "$port" =~ ^[0-9]+$ ]] || port=443
|
||||
|
||||
while [ "$elapsed" -lt "$timeout" ]; do
|
||||
if ! systemctl is-active --quiet "$TELEMT_SERVICE" 2>/dev/null; then
|
||||
return 1
|
||||
fi
|
||||
if ss -ltnp 2>/dev/null | grep -E ":${port}\b" | grep -q "telemt"; then
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
elapsed=$((elapsed + 1))
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
start_telemt() {
|
||||
if systemctl is-active --quiet "$TELEMT_SERVICE" 2>/dev/null; then
|
||||
systemctl restart "$TELEMT_SERVICE" 2>/dev/null
|
||||
else
|
||||
systemctl start "$TELEMT_SERVICE" 2>/dev/null
|
||||
fi
|
||||
sleep 2
|
||||
if systemctl is-active --quiet "$TELEMT_SERVICE"; then
|
||||
if wait_telemt_ready 90; then
|
||||
log_success "telemt запущен"
|
||||
return 0
|
||||
else
|
||||
log_error "telemt не запустился"
|
||||
log_error "telemt не запустился или не открыл порт"
|
||||
journalctl -u "$TELEMT_SERVICE" --no-pager -n 10 2>/dev/null
|
||||
return 1
|
||||
fi
|
||||
@@ -223,12 +250,12 @@ stop_telemt() {
|
||||
|
||||
restart_telemt() {
|
||||
systemctl restart "$TELEMT_SERVICE" 2>/dev/null
|
||||
sleep 2
|
||||
if systemctl is-active --quiet "$TELEMT_SERVICE"; then
|
||||
if wait_telemt_ready 90; then
|
||||
log_success "telemt перезапущен"
|
||||
return 0
|
||||
else
|
||||
log_error "telemt не перезапустился"
|
||||
log_error "telemt не перезапустился или не открыл порт"
|
||||
journalctl -u "$TELEMT_SERVICE" --no-pager -n 10 2>/dev/null
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user