S6-rc, a service manager analogous to sysv-rc and OpenRC

A few days ago the news was released that a significant release of the s6-rc service manager, which is designed to manage the launch of initialization scripts and services taking into account the dependencies.

S6-rc is characterized by can be used both in initialization systems as to organize the launch of arbitrary services together with events that reflect a change in the state of the system, in addition to provides full dependency tree tracking and automatically starts or ends services to achieve the specified state.

The s6-rc service manager, which can be considered analogous to sysv-rc or OpenRC, includes a set of utilities to start and stop long-running processes (daemons) or immediately terminated startup scripts. In the course of the work, dependencies between components are taken into account, the parallel launch of scripts and services that do not overlap each other is ensured, and a script execution sequence is guaranteed to be repeated across different launches.

All state changes are processed with dependencies in mind, making sure that dependencies are not violated (for example, when a service is started, the dependencies necessary for its operation will be automatically launched, and when it is stopped, the dependent services will also be executed. stopped).

Monitoring suites like s6, runit, perp, or daemontools define a service as a long-running process, also known as a daemon. They provide tools to run the daemon reproducibly in a controlled environment and keep it alive if it dies; they also provide daemon management tools to, among others, send signals to the daemon without knowing its PID. They can seamlessly monitor individual long-running processes, and s6 also provides tools to manage an entire monitoring tree. For any sysadmin concerned with reliability, monitoring suites are a good thing.

Instead of runlevels, s6-rc offers a more universal package concept, which allows grouping services according to arbitrary characteristics and tasks to be solved. To improve efficiency, a compiled dependency base, created by the s6-rc-compile utility based on the contents of directories with files, is used to start / stop services.

To analyze and manipulate the database, the utilities s6-rc-db and s6-rc-update are provided. The system supports sysv-init compliant startup scripts and can import dependency information from sysv-rc or OpenRC.

A of the advantages of s6-rc is a compact implementation that does not contain anything superfluous, Except for the components necessary for solving direct problems, of which this consumes a minimum of system resources.

Unlike other service managers, s6-rc supports proactive (offline) construction of a dependency graph for an existing set of services, allowing you to be able to perform resource-intensive dependency analysis separately, and not during charging or status change.

At the same time, the system is not monolithic and is divided into a series of separate and replaceable modules, each of which, according to the Unix philosophy, solves only one specific problem.

In addition, it is mentioned that in combination with s6 utilities that monitor the work of processes (analogous to daemontools and runit), the toolkit lets you allows the user to simultaneously monitor the operation of long-running services that are in the system, for example, restart them in case of abnormal terminations and that also gives the assurance that a script is launched in a reproducible way, repeated in different launches.

It is also mentioned that it supports, among other things, features such as activating a service when accessing a socket (starting a controller when accessing a network port), logging process events (replacing syslogd) and controlled granting of additional privileges (analogous to sudo).

Finally if you are interested in knowing more about it, you can check the details of this process manager In the following link.

The content of the article adheres to our principles of editorial ethics. To report an error click here!.

A comment, leave yours

Leave a Comment

Your email address will not be published.



  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   one of some said

    In Artix it has been available for a long time. OpenRC, Runit and recently dinit and 66 are also available. I'll comment on it in case someone wants to try it.