Usage without systemd¶
Tip
Our upstream packages use systemd integration, which is the recommendedway to run kresd. This section is only relevant if you choose to use kresdwithout systemd integration.
Knot Resolver is designed to be a single process without the use of threads.While the cache is shared, the individual processes are independent. Thisapproach has several benefits, but it also comes with a few downsides, inparticular:
- Without the use of threads or forking (deprecated, see#529), multipleprocesses aren’t managed in any way by kresd.
- There is no maintenance thread and these tasks have to be handled by separatedaemon(s) (such asGarbage Collector).
To offset these these disadvantages without implementing process management inkresd (and reinventing the wheel), Knot Resolver provides integration withsystemd, 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 inmind when configuring and running kresd without systemd integration.