]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
watchdog: kresd unit properties based on config
authorAleš <ales.mrazek@nic.cz>
Tue, 11 Jan 2022 02:28:16 +0000 (03:28 +0100)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 8 Apr 2022 14:17:53 +0000 (16:17 +0200)
- systemd watchdog is now enabled by default
- related to #44

manager/knot_resolver_manager/datamodel/server_schema.py
manager/knot_resolver_manager/datamodel/templates/server.lua.j2
manager/knot_resolver_manager/kresd_controller/systemd/dbus_api.py

index 358d9f30fc84db94578494669ab2ec8d687b0e7d..48415921af8e99cafe77c20ca496499fc4b9b240 100644 (file)
@@ -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]
index 308442f9f5141ab202f09eef4b2bff247741edc9..431a37b73b287d025fcf550b7b90549071c71394 100644 (file)
@@ -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 %}
index 3697b9d28f25ab5d914247529f296f7cb0c0b714..138bf0c71701aed848504362c7e556792bdc4298 100644 (file)
@@ -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