From 03da3a801fc9c50ae02649bdcdce9f1ba7e59476 Mon Sep 17 00:00:00 2001
From: Star Brilliant <coder@poorlab.com>
Date: Fri, 9 May 2025 00:12:11 +0000
Subject: [PATCH] When systemd service fail to start, use an exponential
 backoff delay to restart it

This solves an issue that on (at least) Fedora and if NetworkManager starts too slow, systemd may stop trying to start it.
---
 systemd/doh-client.service | 5 ++++-
 systemd/doh-server.service | 5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/systemd/doh-client.service b/systemd/doh-client.service
index 9ac5672..650c843 100644
--- a/systemd/doh-client.service
+++ b/systemd/doh-client.service
@@ -10,7 +10,10 @@ AmbientCapabilities=CAP_NET_BIND_SERVICE
 ExecStart=/usr/local/bin/doh-client -conf /etc/dns-over-https/doh-client.conf
 LimitNOFILE=1048576
 Restart=always
-RestartSec=3
+RestartSec=1s
+RestartMaxDelaySec=76s
+RestartSteps=9
+StartLimitIntervalSec=0
 Type=simple
 DynamicUser=yes
 
diff --git a/systemd/doh-server.service b/systemd/doh-server.service
index 442979b..a8d811e 100644
--- a/systemd/doh-server.service
+++ b/systemd/doh-server.service
@@ -8,7 +8,10 @@ AmbientCapabilities=CAP_NET_BIND_SERVICE
 ExecStart=/usr/local/bin/doh-server -conf /etc/dns-over-https/doh-server.conf
 LimitNOFILE=1048576
 Restart=always
-RestartSec=3
+RestartSec=1s
+RestartMaxDelaySec=76s
+RestartSteps=9
+StartLimitIntervalSec=0
 Type=simple
 DynamicUser=yes
 
-- 
GitLab