tatara-init — tatara IS PID 1
Drop-in replacement for systemd/s6/openrc inside a tatara-os Linux guest. No daemon, no dbus, no cgroup choreography (the kernel already does that). A single static Rust binary that:
- Reads
/etc/tatara/init.lisp(or$TATARA_INIT_CONFIG) - Compiles it to a typed
InitConfigviatatara-lisp-derive - For each declared
Service, forks + execs - Reaps zombie children (the classic PID-1 duty)
- Honors
SIGTERM/SIGINT→ propagates to children, then exits - On
SIGHUP→ re-reads the config, diff + apply (start new, stop removed, restart changed)
The supervisor is abstract (Supervisor trait) so the control logic is
unit-testable without actually being PID 1. A concrete LinuxSupervisor
ships for the real boot path; a MockSupervisor ships for tests.
Lisp authoring: