
Also: - rename some files to remove redundant information from the filenames - rename many labels to match the filename and its place in the hierarchy - move lua_api under the scripting section
46 lines
1.8 KiB
ReStructuredText
46 lines
1.8 KiB
ReStructuredText
.. _config_multi_instance:
|
|
|
|
Running multiple instances
|
|
==========================
|
|
|
|
WirePlumber has the ability to run either as a single instance daemon or as
|
|
multiple instances, meaning that there can be multiple processes, each one
|
|
doing a different task.
|
|
|
|
In the default configuration, both setups are supported. The default is to run
|
|
in single-instance mode.
|
|
|
|
In single-instance mode, WirePlumber reads ``wireplumber.conf``, which is the
|
|
default configuration file, and from there it loads ``main.lua``, ``policy.lua``
|
|
and ``bluetooth.lua``, which are lua configuration files (deployed as directories)
|
|
that enable all the relevant functionality.
|
|
|
|
In multi-instance mode, WirePlumber is meant to be started with the
|
|
``--config-file`` command line option 3 times:
|
|
|
|
.. code-block:: console
|
|
|
|
$ wireplumber --config-file=main.conf
|
|
$ wireplumber --config-file=policy.conf
|
|
$ wireplumber --config-file=bluetooth.conf
|
|
|
|
That loads one process which reads ``main.conf``, which then loads ``main.lua``
|
|
and enables core functionality. Then another process that reads ``policy.conf``,
|
|
which then loads ``policy.lua`` and enables policy functionality... and so on.
|
|
|
|
To make this easier to work with, a template systemd unit is provided, which is
|
|
meant to be started with the name of the main configuration file as a
|
|
template argument:
|
|
|
|
.. code-block:: console
|
|
|
|
$ systemctl --user disable wireplumber # disable the single instance
|
|
|
|
$ systemctl --user enable wireplumber@main
|
|
$ systemctl --user enable wireplumber@policy
|
|
$ systemctl --user enable wireplumber@bluetooth
|
|
|
|
It is obviously possible to start as many instances as desired, with manually
|
|
crafted configuration files, as long as it is ensured that these instances
|
|
serve a different purpose and they do not conflict with each other.
|