Expand description
Command-line runner for the cordis-rs
plugin framework: cordis run <config.yml>.
The process model follows upstream Cordis’ NodeLoader: cordis run
supervises a worker subprocess running the loader. The worker exits
with code 51 to request a hot restart (respawned with a doubling,
capped backoff), 52 to quit, and 53 when the loader never came up.
The daemon exits 0 on clean shutdown, 1 when the worker never
booted or died abnormally, and otherwise propagates the worker’s code —
deployment pipelines always see the real outcome. SIGINT / SIGTERM
dispose the root context gracefully and exit 52 (daemon 0); the
daemon forwards its own shutdown to the worker by closing the pipe on
the worker’s stdin (so kill <daemon-pid> and even a SIGKILLed
daemon take the worker down too, not just terminal-wide signals), and
kills the worker after a grace period if it will not quit. .env
and .env.local are loaded (without overriding existing variables)
before the worker boots, and the entry file is watched for hot reload.
--plugin-dir <dir> (repeatable) additionally resolves entries from
dynamic-library plugins compiled against the same toolchain; a change
to a library in those directories hot-restarts the worker so the new
build is loaded by a fresh process.
Plugins reach the process controls through the worker service
(worker::WorkerHandle): restart() maps to a full worker reload,
and shutdown() stops the whole application.
Modules§
- dotenv
- Minimal
.envloading —KEY=VALUElines, no interpolation. - worker
- Worker runtime: boot the loader, watch the config, exit on signals.
Structs§
- Options
- Parsed command line.
Enums§
- Action
- What the supervisor does after a worker exits.
Functions§
- daemon_
exit_ code - The daemon’s own exit code after the worker stopped.
- parse_
args - Parse
cordisarguments (after the binary name). - run
- Entry point used by the
cordisbinary: parse arguments, load dotenv, then supervise or run as the worker. - supervisor_
action - Decide whether to restart the worker after it exited with
exit_code.