Software
skarnet.org
s6-frontend
What is it ?
s6-frontend is a frontend to the s6 init system. It provides
the one-stop-shop s6 command, that is used
to address every part of the init system.
Huh?
The s6 init system is made of several different parts:
- The s6 process supervision suite,
which is the foundation of the s6 ecosystem. While this package is named s6,
that name is generally used to mean "the whole thing", so we will refer to it
as s6-supervision when the context makes it necessary. The goal of a
process supervision suite is to give administrators an environment to start and
control daemons in a reliable and flexible way.
- The s6-rc service manager,
which is a management framework built on top of s6-supervision. The goal of a
service manager is to start and stop services on a system while managing
dependencies between those services.
- The s6-linux-init init package,
which is an add-on to s6-supervision, making it usable as an init system for
Linux in addition to a process supervisor.
The separation in different packages is purposeful: the goal is to keep the
system entirely modular and not tie it to a particular use. s6-supervision
is often used on its own, in environments that already have an init system
(no need for s6-linux-init) and a service manager (no need for s6-rc).
For the same purpose of modularity, s6 follows an approach of "one functionality,
one tool", sometimes to the extreme: the s6-supervision package, as of
2.14.0.1, hosts 75 binaries.
This approach is successful in that it provides comprehensive functionality
with maximum efficiency: despite its growth, s6 remains extremely
lightweight in run-time resource usage. However, a recurring
pattern is that potential users are often daunted by s6's apparent complexity.
s6-frontend is an attempt at managing users' interface expectations. It
provides one user-facing command, named s6, that
takes intuitively-named subcommands in order to control all the important
parts of an s6-based system.
Installation
Requirements
- A Linux-based system with a standard C development environment
- GNU make, version 3.81 or later
- skalibs version
2.14.5.1 or later
- execline version
2.9.8.1 or later
- s6 version
2.14.0.1 or later
- s6-rc version
0.6.0.0 or later
- Optional: nsss version
0.2.1.1 or later
- Optional: s6-linux-init version
1.2.0.0 or later
- Optional: util-linux version
2.41.2 or later
- All the skaware packages are build-time dependencies as well as run-time dependencies.
- skalibs is only a run-time dependency if you link the binaries against
the shared version of the skarnet library.
- util-linux is a run-time dependency only.
- It is currently possible to use s6-frontend on non-Linux systems if the dependencies to
util-linux and to s6-linux-init are disabled at build time, but there is no guarantee that it
will remain possible in the future. Unfortunately, APIs for init systems have diverged too much
across operating systems.
Licensing
s6-frontend is free software. It is available under the
ISC license.
Download
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-frontend and the current one.
Reference
User-facing commands
- The s6 program, which contains several commands. The main ones have their own pages:
Internal programs
Configuration
Related resources
- s6-frontend is discussed on the
supervision mailing-list.
- There is a #s6 IRC channel on OFTC. Sometimes people
are there and even answer questions.