From: Pieter Lexis Date: Thu, 2 Nov 2017 16:28:56 +0000 (+0100) Subject: Add multi-instance unit file X-Git-Tag: auth-4.1.0-rc3~34^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aa6632218059ebd43dfae0a18b4e0f0e569370b5;p=pdns Add multi-instance unit file --- diff --git a/pdns/dnsdistdist/.gitignore b/pdns/dnsdistdist/.gitignore index 1bb513a65..6878668c8 100644 --- a/pdns/dnsdistdist/.gitignore +++ b/pdns/dnsdistdist/.gitignore @@ -33,6 +33,7 @@ /dnsmessage.pb.cc /dnsmessage.pb.h /dnsdist.service +/dnsdist@.service /lua.hpp /test-driver dnsdist.pdf diff --git a/pdns/dnsdistdist/Makefile.am b/pdns/dnsdistdist/Makefile.am index ce49afb03..e31b373c7 100644 --- a/pdns/dnsdistdist/Makefile.am +++ b/pdns/dnsdistdist/Makefile.am @@ -265,10 +265,14 @@ if HAVE_SYSTEMD dnsdist.service: dnsdist.service.in $(AM_V_GEN)sed -e 's![@]bindir[@]!$(bindir)!' < $< > $@ +dnsdist@.service: dnsdist.service + $(AM_V_GEN)sed -e 's!/dnsdist !&--config $(sysconfdir)/dnsdist-%i.conf !' < $< >$@ + systemdsystemunitdir = $(SYSTEMD_DIR) systemdsystemunit_DATA = \ - dnsdist.service + dnsdist.service \ + dnsdist@.service endif if !HAVE_LUA_HPP diff --git a/pdns/dnsdistdist/docs/advanced/index.rst b/pdns/dnsdistdist/docs/advanced/index.rst index c16d04e27..f9cc4ace6 100644 --- a/pdns/dnsdistdist/docs/advanced/index.rst +++ b/pdns/dnsdistdist/docs/advanced/index.rst @@ -16,3 +16,4 @@ These chapters contain information on the advanced features of dnsdist tuning snmp axfr + multiple-instance diff --git a/pdns/dnsdistdist/docs/advanced/multiple-instance.rst b/pdns/dnsdistdist/docs/advanced/multiple-instance.rst new file mode 100644 index 000000000..7e870e12a --- /dev/null +++ b/pdns/dnsdistdist/docs/advanced/multiple-instance.rst @@ -0,0 +1,19 @@ +Running multiple instances +========================== + +Sometimes, it can be advantageous to run multiple instances of :prog:`dnsdist`. +Usecases can be: + + * Multiple inbound IP addresses with different rulesets + * Taking advantage of more processes, using SO_REUSEPORT + +:prog:`dnsdist` supports loading a different configuration file with the ``--config`` command line switch. + +By default, ``SYSCONFDIR/dnsdist.conf`` is loaded. ``SYSCONFDIR`` is usually ``/etc`` or ``/etc/dnsdist``. + +Using systemd +------------- +.. versionadded:: 1.3.0 + +On systems with systemd, instance services can be used. +To create a dnsdist service named ``foo``, create a ``dnsdist-foo.conf`` in ``SYSCONFDIR``, then run ``systemctl enable dnsdist@foo.service`` and ``systemctl start dnsdist@foo.service``.