uniconfd(8) a daemon program for the UniConf configuration system


uniconfd [ OPTIONS ] MOUNT ...


UniConf is the One True Configuration system that includes all the others because it has plugin backends and frontends. Or, less grandiosely, it's a lightweight, distributed, cacheable tree of strings.

It supports:

  • retrieving, storing, and enumerating key/value pairs (where both keys and values are strings).
  • multiple backends where the actual key/value pairs are stored.
  • multiple frontends for tying it to other configuration architectures.

It operates locally, and across a network, allowing you to tie multiple different applications together for distributed computing. Also, it provides notifications in the form of callbacks, so your application can be notified if a configuration key has changed.

uniconfd is necessary when you have more than one application, or multiple instances of an application, sharing one configuration. UniConf-enabled applications contact uniconfd which provides notifications when any of their watched keys change.

You tell uniconfd which UniConf MOUNT you want it to manage. See the MOUNTS section for more information.


Run in the foreground. Do not fork into a separate daemon process.
Print debugging messages to the console. The second d increases the verbosity of the messages.
Print the version number and exit.
Require authentication on incoming connections.
Check all accesses against a perms moniker.
-p port
Listen on a given TCP port. The default is 4111. If port is 0, then listening on TCP is disabled.
-s port
Listen on a given TCP port wrapped in SSL. The default is 4112. If port is 0, then listening on SSL-over-TCP is disabled.
-u filename
Listen on a given Unix socket filename. This is disabled by default.


Mounts are UniConf path monikers which are in the form:
This is the tree to manage. All trees are descended from the root tree, indicated by a bare slash (/).
These are the generators used to read and write key/value pairs. You can chain them with colons. For example, the generator chain: cache:retry:ini will cache the configuration for speed, retry persistently if the data source disappears, and store the data in an INI-formatted file.
This is the location where the data is stored. It is dependent on which GENERATORS were specified. For instance, it could be: • a filename (ini:/var/lib/app/config.ini),
• a network address, (tcp:open.nit.ca:4111),
• or even an empty string (tmp:).






This software was written by the hackers at Net Integration Technologies. Contact us at <[email protected]>