summaryrefslogtreecommitdiffstats
path: root/system/s6-rc/README
blob: fcc650f1d71f73997912e3ede76bcfd23084c93a (plain)
s6-rc is a service manager for s6-based systems, i.e. a suite of
programs that can start and stop services, both long-running daemons and
one-time initialization scripts, in the proper order according to a
dependency tree. It ensures that long-running daemons are supervised by
the s6 infrastructure, and that one-time scripts are also run in a
controlled environment.

NOTE:
s6-rc has a "live directory" where it puts some internal files that are
needed at runtime, which defaults to /run/s6-rc. This can be changed to
other directory by passing LIVE_DIR=/path/to/directory environment
variable to the SlackBuild script like below:

    LIVE_DIR=/path/to/directory ./s6-rc.SlackBuild

Make sure /path/to/directory is readable and writable by s6-rc or it
will not work correctly. A good recommendation is to put the live
directory inside a RAM filesystem (e.g. tmpfs).

Upstream recommends building skarnet.org softwares with static libraries
as most of skarnet.org softwares are small enough that using shared
libraries are generally not worth using. Therefore, by default, shared
libraries are not built and binaries are linked against the static
versions of the skarnet.org libraries.

If you want to also build the shared libraries, pass BUILD_SHARED=yes to
the SlackBuild script like below:

    BUILD_SHARED=yes ./s6-rc.SlackBuild

Similarly, to avoid building the static libraries, you can pass
BUILD_STATIC=no to the script. For example, to only build the shared
libraries and not the static ones, you can do something like:

    BUILD_SHARED=yes BUILD_STATIC=no ./s6-rc.SlackBuild

If you just want to build and use skarnet.org softwares, building only
the static libraries should be sufficient.

If you want the binaries to be linked against the shared versions of the
skarnet.org libraries, pass LINK_SHARED=yes to the script.