What is 66?¶
Sixty-six (66) is a complete Linux service manager: it declares services in a readable INI format, compiles them ahead of time, and supervises each one with a dedicated supervisor process. It can bring up a whole machine as PID 1 or run alongside another init, on hardware or in a container.
This documentation tries to be complete and self-contained. If you are new to process supervision, some concepts may be unfamiliar at first; the pages below introduce them as needed.
If you are still deciding whether 66 fits your needs, start with where 66 stands among init systems: what it looks like in practice, who it suits, and how it compares with runit, the s6 stack, OpenRC, finit, dinit and systemd.
Where to begin¶
New to 66? Follow these two, in order:
- Getting started — write, run and supervise your first service, step by step.
- Cheatsheet — every day-to-day command on a single page.
Then dig in as your needs grow:
- Writing service files — frontend service file, dependencies and ordering, logging, identifier interpretation, instantiated service
- Organising services — tree, module services, module service usage
- Reacting to events — the event system, 66-eventd
- Handing a session's environment over — 66 env
- Coming from another init — systemd, OpenRC or runit, where 66 stands among them
- When something breaks — troubleshooting & FAQ
- Administration & boot — boot, scandir, running in a container, upgrade and migration
- Going deeper — deeper understanding, standard I/O redirection, service configuration file
Installation¶
Requirements¶
Please refer to the INSTALL.md file for details.
Licensing¶
66 is free software. It is available under the ISC license.
Upgrade¶
See changes between versions.
(!) The significant changes in versions 0.7.0.0 and above render them incompatible with versions prior to 0.7.0.0. You can refer to the Rosetta Stone to understand the interface and behavioral differences between versions below 0.7.0.0 and version 0.7.0.0
Commands¶
Guides¶
- Getting started
- Cheatsheet
- Dependencies and ordering
- Logging
- The event system
- Troubleshooting & FAQ
- Coming from systemd, OpenRC or runit
- Running 66 inside a container
Main command¶
Extra tools¶
Internal tools¶
Others documentation¶
- frontend service file
- instantiated service file
- module services
- module service usage
- module service creation
- Service configuration file
- Deeper understanding
- Upgrade and Migration process
- Standard I/O redirection
- Identifier interpretation
Why is 66 necessary?¶
Implementing and handling service supervision can be complex and difficult to understand. This led to the creation of the 66 program.
Why the name?
Historically, 66 was built on top of the former s6 and s6-rc programs. With time and code improvement those external dependencies were dropped: 66 is now a fully independent service manager with its own native supervision, although the name has been retained.
It is a lot faster and easier to write and remember when writing. Apart from that it is a nice command prefix to have. It identifies the origin of the software and it's short.
Expect more use of the 66- prefix in future obarun software releases and please avoid using it for your own projects.