This page is intended for experienced users only. If you follow these instructions, you are not protected from footguns elimited with the introduction of the kres-manager. However, if you want to continue using Knot Resolver the same as before the version 6.0.0 this is a chapter for you.

For new and less experienced users, we recommend using the newer approach starting in the Getting Started chapter.

Usage without systemd and without manager


Our upstream packages use systemd integration, which is the recommended way to run kresd. This section is only relevant if you choose to use kresd without systemd integration.

kresd is designed to be a single process without the use of threads. While the cache is shared, the individual processes are independent. This approach has several benefits, but it also comes with a few downsides, in particular:

  • Without the use of threads or forking (deprecated, see #529), multiple processes aren’t managed in any way by kresd.

  • There is no maintenance thread and these tasks have to be handled by separate daemon(s) (such as Garbage Collector).

To offset these these disadvantages without implementing process management in kresd (and reinventing the wheel), Knot Resolver provides integration with systemd, which is widely used across GNU/Linux distributions.

If your use-case doesn’t support systemd (e.g. using macOS, FreeBSD, Docker, OpenWrt, Turris), this section describes the differences and things to keep in mind when configuring and running kresd without systemd integration.