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
- An overview of the repo tools in s6-rc

## Installation

### Requirements

- A POSIX-compliant system with a standard C development environment
- GNU make, version 3.81 or later
- skalibs version 2.15.0.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.9.9.1 or later. It's a build-time and run-time requirement.
- s6 version 2.15.0.0 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.6.1.1. You can access its checksum here.
- Alternatively, you can checkout a copy of the s6-rc git repository:

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

- There's also a Codeberg mirror, or a GitHub mirror, or a SourceHut 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

#### Management of source definition directories: the repo collection of tools

- An overview of the repo tools
- The `s6-rc-repo-init` program
- The `s6-rc-repo-list` program
- The `s6-rc-repo-sync` program
- The `s6-rc-set-new` program
- The `s6-rc-set-copy` program
- The `s6-rc-set-delete` program
- The `s6-rc-set-change` program
- The `s6-rc-set-status` program
- The `s6-rc-set-fix` program
- The `s6-rc-set-commit` program
- The `s6-rc-set-install` program

## Related resources

Version 1.0.0.0 of s6-rc was in development for some time, but it was too ambitious a project and had to be scaled back. s6-rc is now focused on incremental improvement.

The s6-frontend project is a higher-level interface to the s6 ecosystem, and s6-rc in particular. If you're looking for an entry point to s6, s6-frontend is what you want. s6-rc is more of a part of the engine.

### s6-rc manual pages

- Lennart Jablonka is providing the s6-rc documentation as a set of man pages.

### 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.