s6-rc - a service manager for s6
Keywords: s6 rc unix s6-rc init service management rc.d scripts administration root laurent bercot ska skarnet

Software
skarnet.org

# s6-rc

## What is it ?

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.

- Why such a program ?
- A high-level overview of s6-rc
- FAQ for s6-rc

## Installation

### Requirements

- A POSIX-compliant system with a standard C development environment
- GNU make, version 3.81 or later
- skalibs version 2.11.1.0 or later. It's a build-time requirement. It's also a run-time requirement if you link against the shared version of the skalibs library.
- execline version 2.8.2.0 or later. It's a build-time and run-time requirement.
- s6 version 2.11.0.1 or later. It's a build-time and run-time requirement.

### Licensing

s6-rc is free software. It is available under the ISC license.

### Download

- The current released version of s6-rc is 0.5.3.1.
- Alternatively, you can checkout a copy of the s6-rc git repository:

       git clone git://git.skarnet.org/s6-rc

- There's also a GitHub mirror of the s6-rc git repository.

### Compilation

- See the enclosed INSTALL file for installation details.

### Upgrade notes

- This page lists the differences to be aware of between the previous versions of s6-rc and the current one.

## Reference

### Commands

#### Offline tools: creating and managing a compiled service database

- The `s6-rc-compile` program
- The `s6-rc-db` program
- The `s6-rc-bundle` program

#### Online tools: managing your live services

- The `s6-rc-init` program
- The `s6-rc` program
- The `s6-rc-update` program

#### Upgrading from earlier s6-rc database formats

- The `s6-rc-format-upgrade` program

#### Programs used internally

- The `s6-rc-dryrun` internal program
- The `s6-rc-oneshot-run` internal program
- The `s6-rc-fdholder-filler` internal program

## Related resources

I am working on version 1.0.0.0 of s6-rc: more complete and more user-friendly. It is a huge project, so I have a call for funds for it, in order to work on it full-time. (I have found a sponsor and am actually working on it!)

### Discussion

- `s6-rc` is discussed on the skaware mailing-list.

### Similar work

- anopa is another service manager for s6, with a similar design (but no compilation phase).
- nosh is a complete init system and service manager for Unix.