s6-frontend: the s6 command

Finally, an actual binary named s6!

The s6 command is a run-time high-level command line interface for system administrators, providing them with an easy syntax to run common administrative tasks under the s6 init system.

This document serves as a manual page for s6.

Table of contents

Design principles

The s6 command translates high-level concepts formulated by the user, e.g. "start service foobar", into the series of low-level s6-linux-init, s6-supervision or s6-rc command lines that will implement the user's request. Consequently, it is more of a meta-command than a command: depending on the argument it reads, it can have wildly different behaviours.

A few preliminary examples:

  • s6 config update requires s6-frontend to build and apply a whole new configuration based on its service files. This implies calls to s6-frontend binaries and s6-rc binaries, at the very least. This is a heavy operation.
  • s6 service foobar restart, on the other hand, only requires sending a signal to the foobar daemon, and translates directly to the s6-svc -r /run/service/foobar command from s6-supervision. But as you can see, the s6 command embeds some policy that s6-svc does not: it knows that the system scan directory is /run/service by default, and doesn't require the user to type it.

The s6 command has not been designed yet; this page will become more filled when the s6-frontend project is being worked on, after the s6-rc project is complete.

Synopsis

Description

Options

Exit codes

Notes