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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06b133442fb27fb369100ce6941b5c1c467f014f93f0fa3952104bed5e5eb337 |
|
MD5 | 09bcc007906b9f13dbbabe0a62a541ad |
|
BLAKE2b-256 | d2ba3a21b6b3a6223fef435b540eb4fe6f4a4c0f0f05a2454c9408e5bdb3214d |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95984b4a17be2bdb3ca27b935a6f45d36e88350e2302d3323743401e4c2821fa |
|
MD5 | 7f2f7f325e36dace514ce2a7ef85ba2d |
|
BLAKE2b-256 | 1857f7ddc1f6a3db48e4b41a687563844020f8f4a9898d21f1b75f52d90aac41 |