s6-linux-utils - skarnet's tiny Linux-specific utilities
Keywords: s6 unix administration root laurent bercot ska skarnet linux utilities tiny linux-specific

Software
skarnet.org

# s6-linux-utils

## What is it ?

s6-linux-utils is a set of minimalistic Linux-specific system utilities.

Prefixing the name of this package — and the names of the binaries it provides — with `s6-` was a naming mistake. It happened in the early days of the s6 project, before it grew and became an ecosystem focused on supervision, service management and init; despite sharing the same author and the same philosophy, and being designed to work with it, `s6-linux-utils` is not, stricto sensu, part of the s6 ecosystem, and if you arrived here while trying to understand what s6 is, you are on the wrong page. I apologize for the confusion.

## Installation

### Requirements

- A Linux-based system with a standard C development environment. The Linux kernel must be 3.5 or later.
- GNU make, version 3.81 or later
- skalibs version 2.14.3.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.

### Licensing

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

### Download

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

       git clone git://git.skarnet.org/s6-linux-utils

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

### Compilation

- See the enclosed INSTALL file for installation details.
- Starting with version 2.6.1.0, you can use the `--enable-multicall` configure option to save disk space.

### Upgrade notes

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

## Reference

### Commands

All these commands exit 111 if they encounter a temporary error, and 100 if they encounter a permanent error - such as a misuse. They exit 127 if they're trying to execute into a program and cannot find it, and 126 if they fail to execute into a program for another reason.

(Miscellaneous tools)

- The `rngseed` program
- The `s6-chroot` program
- The `s6-freeramdisk` program
- The `s6-hostname` program
- The `s6-logwatch` program
- The `s6-mount` program
- The `s6-pivotchroot` program
- The `s6-ps` program
- The `s6-swapoff` program
- The `s6-swapon` program
- The `s6-umount` program

(Multicall configuration)

- The `s6-linux-utils` multicall binary

## Related resources

- `s6-linux-utils` is discussed on the skaware mailing-list.

## Similar work

There are several good projects aiming to provide a minimal userspace environment for Linux, suitable for embedded systems. Among them, for instance:

- BusyBox
- toybox
- sbase and ubase

Most of the time, these projects aim to implement standard commands in a lightweight way, and they do it well enough. So, although some standard reimplentation already exists in s6-linux-utils and its sibling package s6-portable-utils, it is an explicit non-goal of those packages to duplicate the work of those projects, and no more rewriting of standard commands will occur.