s6 Process Supervision Suite

repository·main·Indexed 21 days ago

https://github.com/skarnet/s6

A modular suite of programs for robust process supervision and management. It provides low-level building blocks that can be extended into a full-featured init system, serving as the foundation for packages such as s6-rc and s6-linux-init.

Tokens
373
Snippets
1
Records
4
Agent score
26%

What's inside s6

  1. Overview of the s6 process supervision suite

    main
    s6 is a suite of programs designed for process supervision and management. It provides the fundamental building blocks that can be used to construct a complete init system. For example, the s6-rc and s6-linux-init packages are built on top of the core s6 functionality to provide higher-level service management and Linux initialization.
  2. Overview of the syslogd logger service

    main
    The syslogd logger service is a component designed to capture all messages received by the syslogd service. It emulates the default syslogd behavior found on most Linux distributions by organizing logs into subdirectories within the /var/log/syslogd log directory.
  3. Compile s6 on Solaris

    main

    Because Solaris does not provide a POSIX-compliant shell at /bin/sh, you must run the provided patching script before starting the standard build process. This script updates the #! invocations in the configure script and other tools to ensure a POSIX shell (typically found at /usr/xpg4/bin/sh on Solaris) is used for compilation.

    Follow these steps to prepare the source for compilation on Solaris:

    1. Run ./patch-for-solaris.
    2. Run ./configure.
    3. Proceed with your standard build commands (e.g., make).
    ./patch-for-solaris
    ./configure
  4. Understand the s6 service directory structure using the syslogd example

    main
    The examples/syslogd directory serves as a template for creating a service directory for process supervision with s6. This specific example emulates a syslogd service. It is designed to work on any Unix-like system where syslog() is implemented via a connection on the /dev/log Unix-domain socket.