]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: update systemd service file with knot-resolver script and kresctl reload
authorVasek Sraier <git@vakabus.cz>
Mon, 6 Mar 2023 18:23:57 +0000 (19:23 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Mon, 29 May 2023 07:50:57 +0000 (07:50 +0000)
manager/knot_resolver_manager/utils/requests.py
manager/tests/packaging/interactive/reload.sh [new file with mode: 0755]
systemd/knot-resolver.service.in

index 9eadfa79ef59f0f02caf9a63fcd09063f2be4d8c..45d986f0197d34dcc30b715318011dadbcc91d6f 100644 (file)
@@ -1,7 +1,8 @@
 import socket
 from http.client import HTTPConnection
+import sys
 from typing import Any, Optional, Union
-from urllib.error import HTTPError
+from urllib.error import HTTPError, URLError
 from urllib.request import AbstractHTTPHandler, Request, build_opener, install_opener, urlopen
 
 from typing_extensions import Literal
@@ -35,6 +36,16 @@ def request(
             return Response(response.status, response.read().decode("utf8"))
     except HTTPError as err:
         return Response(err.code, err.read().decode("utf8"))
+    except URLError as err:
+        if err.errno == 111 or isinstance(err.reason, ConnectionRefusedError):
+            print("Connection refused.")
+            print(f"\tURL: {url}")
+            print("Is the URL correct?")
+            print("\tUnix socket would start with http+unix:// and URL encoded path.")
+            print("\tInet sockets would start with http:// and domain or ip")
+        else:
+            print(f"{err}: url={url}", file=sys.stderr)
+        sys.exit(1)
 
 
 # Code heavily inspired by requests-unixsocket
diff --git a/manager/tests/packaging/interactive/reload.sh b/manager/tests/packaging/interactive/reload.sh
new file mode 100755 (executable)
index 0000000..9daa189
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+set -e
+
+kresctl reload
index 3c8d2477e1ecfd018ef187c542bd76c771175513..84efbfc55382570b0517cd7cf31765bd0c0ba422 100644 (file)
@@ -9,15 +9,14 @@ Wants=nss-lookup.target
 [Service]
 Type=notify
 TimeoutStartSec=10s
-ExecStart=/usr/bin/env python3 -m knot_resolver_manager --config=/etc/knot-resolver/config.yml
+ExecStart=/usr/bin/env knot-resolver --config=/etc/knot-resolver/config.yml
 KillSignal=SIGINT
 WorkingDirectory=/var/run/knot-resolver/
 User=@user@
 Group=@group@
 CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SETPCAP
 AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_SETPCAP
-# See systemd.service(5) for explanation, why we should replace this with a blocking request
-# ExecReload=/usr/bin/env kill -HUP $MAINPID
+ExecReload=/usr/bin/env kresctl --socket /var/run/knot-resolver/manager.sock reload
 
 [Install]
 WantedBy=multi-user.target
\ No newline at end of file