Available on GitHub for you to fork or download licensed under the Apache License, Version 2.0.
Documentation is available with full configuration, command reference, and utilities.
Chaperone is a lightweight alternative to process environment managers like systemd or upstart. While chaperone provides an extensive feature set, including dependency-based startup, syslog logging, zombie harvesting, and job scheduling, it does all of this in a single self-contained process that can run as a “system init” daemon or can run in userspace.
This makes Chaperone an ideal tool for managing “small” process spaces like Docker containers while still providing the system services many daemons expect.
Just some of the features include:
- Monitoring for all processes in the container, automatically shutting down the container when the last process exits.
- A complete, configurable syslog facility built in and provided on /dev/log so daemons and other services can have output captured. Configurable to handle log-file rotation, duplication to stdout/stderr, and full Linux logging facility, severity support. No syslog daemon is required in your container.
- The ability to start up system services in dependency order, with options for per-service environment variables, restart options, and stdout/stderr capture either to the log service or stdout.
- A built-in cron scheduling service.
- Emulation of systemd notifications (sd_notify) so services can post ready and status notifications to chaperone.
- Process monitoring and zombie elimination, along with organized system shutdown to assure all daemons shut-down gracefully.
- The ability to have an optional controlling process, specified on the docker command line, to simplify creating containers which have development mode vs. production mode.
- Complete configuration using a
chaperone.ddirectory which can be located in various places, and even allows different configurations within the container, triggered based upon which user is selected at start-up.
- Default behavior designed out-of-the-box to work with simple Docker containers for quick start-up for lean containers.
Lightweight and powerful process manager
While many containers are built with a single contained process in mind, other applications require a small suite of processes bundled into the “black box” that containers provide.
Independent UserIDs, logs, and more
Chaperone provides a single PID 1 process that provides syslog emulation, /dev/log capture, uid/gid mapping for attached storage, cron scheduling, orderly shutdown, zombie harvesting, etc.
Developer-friendly environment for coders
For people that spend 99% of their time coding applications, Chaperone assures developers can configure and deploy applications without having to modify container internals.