From: Aleš Date: Tue, 11 Jan 2022 02:28:16 +0000 (+0100) Subject: watchdog: kresd unit properties based on config X-Git-Tag: v6.0.0a1~53^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bfd1eb03b99d30d227ed856b74eae12de28d647e;p=thirdparty%2Fknot-resolver.git watchdog: kresd unit properties based on config - systemd watchdog is now enabled by default - related to #44 --- diff --git a/manager/knot_resolver_manager/datamodel/server_schema.py b/manager/knot_resolver_manager/datamodel/server_schema.py index 358d9f30f..48415921a 100644 --- a/manager/knot_resolver_manager/datamodel/server_schema.py +++ b/manager/knot_resolver_manager/datamodel/server_schema.py @@ -80,7 +80,7 @@ class ServerSchema(SchemaNode): workers: Union[Literal["auto"], int] = 1 use_cache_gc: bool = True backend: BackendEnum = "auto" - watchdog: Union[Literal[False], WatchDogSchema] = False + watchdog: Union[bool, WatchDogSchema] = True rundir: UncheckedPath = UncheckedPath(".") management: ManagementSchema = ManagementSchema() webmgmt: Optional[WebmgmtSchema] = None @@ -93,7 +93,7 @@ class ServerSchema(SchemaNode): workers: int use_cache_gc: bool backend: BackendEnum = "auto" - watchdog: Union[Literal[False], WatchDogSchema] + watchdog: Union[bool, WatchDogSchema] rundir: UncheckedPath = UncheckedPath(".") management: ManagementSchema webmgmt: Optional[WebmgmtSchema] diff --git a/manager/knot_resolver_manager/datamodel/templates/server.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/server.lua.j2 index 308442f9f..431a37b73 100644 --- a/manager/knot_resolver_manager/datamodel/templates/server.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/server.lua.j2 @@ -8,8 +8,11 @@ nsid.name('{{ cfg.server.nsid }}_' .. worker.id) {% endif %} {% if cfg.server.watchdog -%} +-- server.watchdog modules.load('watchdog') +{% if cfg.server.watchdog.qname and cfg.server.watchdog.qtype -%} watchdog.config({ qname = '{{ cfg.server.watchdog.qname }}', qtype = kres.type.{{ cfg.server.watchdog.qtype }} }) +{%- endif %} {% else %} modules.unload('watchdog') {%- endif %} diff --git a/manager/knot_resolver_manager/kresd_controller/systemd/dbus_api.py b/manager/knot_resolver_manager/kresd_controller/systemd/dbus_api.py index 3697b9d28..138bf0c71 100644 --- a/manager/knot_resolver_manager/kresd_controller/systemd/dbus_api.py +++ b/manager/knot_resolver_manager/kresd_controller/systemd/dbus_api.py @@ -149,11 +149,16 @@ def _kresd_unit_properties(config: KresConfig, kres_id: KresID) -> List[Tuple[st ), ), ("TimeoutStopUSec", GLib.Variant("t", 10000000)), - ("WatchdogUSec", GLib.Variant("t", 10000000)), ("Restart", GLib.Variant("s", "on-abnormal")), ("LimitNOFILE", GLib.Variant("t", 524288)), ("Environment", GLib.Variant("as", [f"SYSTEMD_INSTANCE={kres_id}"])), ] + + if config.server.watchdog: + val.append( + ("WatchdogUSec", GLib.Variant("t", 10000000)), + ) + return val