Skip to content

Cheatsheet

Every command you reach for day to day, on one page. New to 66? Read the getting started tutorial first — this page is a quick reference, not an introduction.

In the tables below, foo is a service name and mytree a tree name. Run 66 as a regular user for your own services, or as root for system services; the commands are the same.

Commands are shown with long options for readability. Every long option has a short equivalent (for example --start is -S, --tree is -t), listed on each command's reference page. An option that takes a value accepts both --depth 2 and --depth=2.

Service life cycle

Goal Command
Run a service now 66 start foo
Register it for the next boot/session 66 enable foo
Register and run it now 66 enable --start foo
Stop it (stays enabled) 66 stop foo
Un-register it from boot 66 disable foo
Stop and unregister in one go 66 disable --stop foo
Restart (down then up) 66 restart foo
Reload config — sends SIGHUP 66 reload foo
Re-apply an edited frontend file 66 reconfigure foo
Stop and drop from the scandir 66 free foo
Erase everything 66 generated for it 66 remove foo

66 remove is irreversible (it keeps only your frontend file). Several services at once: separate names with spaces — 66 start foo bar baz.

Golden rule: start = now; enable = on every future boot/session.

Signals

Goal Command
Send SIGHUP (also --term, --kill, --cont…) 66 signal --hangup foo
Send any signal, by name or number 66 signal --signal SIGUSR1 foo
Leave the dependencies alone 66 signal --no-propagate --term foo
Bring down and keep it down 66 signal --down-keep foo
Bring up and wait until it is ready 66 signal --up --wait U foo

66 signal is the low-level path every state change goes through — start, stop and reload are the ones you normally type. It works on an already supervised service, and it propagates to dependencies unless you say --no-propagate. The letters of --wait are u up, U up and ready, d down, D down and ready, r (re)started, R (re)started and ready.

Inspecting services

Goal Command
Status of one service 66 status foo
Overview of all services 66 status
Show dependencies as a graph 66 status --graph foo
Limit graph depth 66 status --depth 2 foo
Reverse (stop) order 66 status --reverse foo
Pick fields (scriptable) 66 status --no-name --field name,status foo
Compile a frontend without running it 66 parse foo
Dump the parsed resolve file (debug) 66 resolve foo
Dump the management flags: parsed, supervised… (debug) 66 state foo
Dump the runtime status: up since, result, pid (debug) 66 runstate foo
Pick fields from it (scriptable) 66 runstate --no-name --field state,pid foo
Print the version of 66 66 version

66 state answers what does 66 know about this service, 66 runstate answers is it running right now, since when, with which result.

Logs

Goal Command
Every log, all sources merged in time order 66 log
Logs of one service 66 log foo
The system (boot/scandir) catch-all logger 66 log system
Follow new lines, tail -f style 66 log --follow foo
Only a time window 66 log --since 2026-08-01 --until 2026-08-02T12:00:00 foo
Only lines matching a regex 66 log --grep 'fail' foo

66 log is a read-only viewer: it never writes or rotates anything. Times are ISO 8601 in local timeYYYY-MM-DD or YYYY-MM-DDTHH:MM:SS. Without an operand every source is interleaved and each line is tagged with the service it comes from.

Supervision (scandir)

Goal Command
Create the supervision directory 66 scandir create
Start supervision (creates if needed, idempotent) 66 scandir start
Re-scan for new/removed services 66 scandir reconfigure
Force an immediate scan 66 scandir check
Clean shutdown of supervision 66 scandir stop

66 scandir start returns at once if a scandir is already running; otherwise it launches the supervisor in the foreground — background it (&) or use a dedicated terminal. Normally 66-userd (system: 66 boot) does this for you, so you rarely type it.

Trees

Goal Command
Create a tree 66 tree create mytree
Enable a tree (brought up at boot) 66 tree enable mytree
Make a tree the current one 66 tree current mytree
Show a tree's services 66 tree status mytree
Bring a tree up / down 66 tree start mytree / 66 tree stop mytree
Remove a tree 66 tree remove mytree
Enable a service into a tree 66 --tree mytree enable foo

Without a chosen tree, services go to the default tree global.

Configuration & environment

Goal Command
Edit a service's environment file 66 configure foo
List available config versions 66 configure --versions foo
Set the current config version 66 configure --current version foo
Override one key=value 66 configure --replace 'KEY=value' foo
Publish a session variable to every service 66 env import DISPLAY XAUTHORITY
Publish an explicit value 66 env set EDITOR=vim
Withdraw a published variable 66 env unset DISPLAY
List the published variables 66 env list

After changing config of a running service, apply it with 66 reconfigure foo.

66 env publishes into the runtime environment of your scandir, which is merged last — after the frontend, the service configuration file and the ImportFile files — so a published variable wins over every other source. A service picks it up the next time it starts. What is published lives and dies with the scandir.

Events

Goal Command
Raise a user event by name 66 emit cert-renewed

66 emit is fire-and-forget: it hands the event to the event daemon and returns, whether or not anything listens. Every service declaring an [Event] section with EventType = user and On = ( cert-renewed ) then runs its reaction. See the event system.

Snapshots

Goal Command
Snapshot the whole 66 ecosystem 66 snapshot create name
Restore a snapshot 66 snapshot restore name
List snapshots 66 snapshot list
Delete a snapshot 66 snapshot remove name

A snapshot only covers the ecosystem of the user who runs it.

System control

Goal Command
Boot the system (PID 1) 66 boot
Power off 66 poweroff
Reboot 66 reboot
Halt 66 halt
Suspend to RAM 66 suspend
Hibernate to disk 66 hibernate

Minimal frontend file

The smallest valid service (see frontend for everything):

[Main]
Type = classic

[Start]
Execute = ( /usr/bin/mydaemon --foreground )

Type is classic (supervised, restarted), oneshot (runs once) or module (a bundle).

Common identifiers

Replaced at parse time, for generic/reusable files (see identifier):

Token Replaced by
@I Instance name (string after the @)
@U User name (root for uid 0)
@H User home directory
@R User runtime directory (/run for root)

Key paths

What Regular user Root / system
Frontend files $HOME/.66/service /etc/66/service, /usr/share/66/service
Config files .66/conf /etc/66/conf
66 working dir .66 /var/lib/66
Live supervision /run/66 /run/66