Skip to main content

A command line interface for managing s6 services, using the s6 toolset

Project description

A command line interface for managing s6 services, using the s6 toolset

Dependencies:

  • Python 3.6+

  • Plumbum

  • s6

  • BusyBox or (lsof, psmisc, coreutils)

  • musl-utils or glibc

Optional Dependencies:

  • lnav or multitail

  • highlight or bat

Installation

From PyPI:

pip install essex
# activate bash completion:
complete -o dirnames -C _essex essex

From 64-bit musl binary release:

wget "https://github.com/AndydeCleyre/essex/releases/download/0.3.0/essex-0.3.0-x86_64.tar.xz" -O - | tar xJf - -C /usr/local/bin

Usage

essex 0.3.0

Simply manage services

Usage:
    essex [SWITCHES] [SUBCOMMAND [SWITCHES]]

Meta-switches:
    -h, --help                                            Prints this help message and quits
    --help-all                                            Prints help messages of all sub-commands and quits
    -v, --version                                         Prints the program's version and quits

Switches:
    -d, --directory SERVICES_DIRECTORY:str                folder of services to manage; the default is the first
                                                          existing match from ('./svcs', '~/svcs', '/etc/svcs',
                                                          '/svcs'), unless a colon-delimited SERVICES_PATHS env var
                                                          exists;
    -l, --logs-directory SERVICES_LOGS_DIRECTORY:str      folder of services' log files; the default is
                                                          SERVICES_DIRECTORY/../svcs-logs

Sub-commands:
    cat                                                   View services' run, finish, and log commands
    disable                                               Configure individual services to be down, without actually
                                                          stopping them
    enable                                                Configure individual services to be up, without actually
                                                          starting them
    list                                                  List all known services
    log                                                   View a service's log
    new                                                   Create a new service
    off                                                   Stop all services and their supervision
    on                                                    Start supervising all services
    pt                                                    Print a sample Papertrail log_files.yml
    reload                                                Restart (all or specified) running services whose run scripts
                                                          have changed
    sig                                                   Send a signal to a service
    start                                                 Start individual services
    status                                                View the current states of (all or specified) services
    stop                                                  Stop individual services
    sync                                                  Start or stop services to match their configuration
    tree                                                  View the process tree from the supervision root

Self-Contained Binary

One can build a single-file executable suitable for dropping into an alpine-based container with s6 (no Python or Plumbum necessary), using docker and pyinstaller-alpine.

From the inner essex folder:

docker run --rm -v "${PWD}:/src" inn0kenty/pyinstaller-alpine:3.7 -F --clean ./essex.py

It comes out to ~10MB.

Packaging

pip install -r requirements.txt
# Create a wheel and source distribution in dist/
flit build
# Create a wheel and source distribution in dist/ AND upload to PyPI:
flit publish

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

essex-0.3.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

essex-0.3.0-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file essex-0.3.0.tar.gz.

File metadata

  • Download URL: essex-0.3.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.21.0

File hashes

Hashes for essex-0.3.0.tar.gz
Algorithm Hash digest
SHA256 06b133442fb27fb369100ce6941b5c1c467f014f93f0fa3952104bed5e5eb337
MD5 09bcc007906b9f13dbbabe0a62a541ad
BLAKE2b-256 d2ba3a21b6b3a6223fef435b540eb4fe6f4a4c0f0f05a2454c9408e5bdb3214d

See more details on using hashes here.

File details

Details for the file essex-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: essex-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.21.0

File hashes

Hashes for essex-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95984b4a17be2bdb3ca27b935a6f45d36e88350e2302d3323743401e4c2821fa
MD5 7f2f7f325e36dace514ce2a7ef85ba2d
BLAKE2b-256 1857f7ddc1f6a3db48e4b41a687563844020f8f4a9898d21f1b75f52d90aac41

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page