Expand description
§Subprocess: OS process runner for TaskKind::Subprocess.
Executes tasks by spawning child OS processes with optional backend hardening (rlimits, cgroups, security capabilities).
§Modules
| Module | What it does |
|---|---|
runner | SubprocessRunner: Runner trait impl + execution |
backend | SubprocessBackendConfig: rlimits, cgroups, security |
task | SubprocessTaskConfig: resolved runtime config |
logger | LogConfig + stream capture, truncation, tracing |
§Quick start
register_subprocess_runner(&mut router, "my-runner")
├──► creates SubprocessRunner::new("my-runner")
├──► attaches label "runner-name" = "my-runner"
└──► registers in RunnerRouter
register_subprocess_runner_with_backend(&mut router, "secure", backend)
├──► validates SubprocessBackendConfig
├──► creates SubprocessRunner::with_config("secure", backend)
├──► attaches label "runner-name" = "secure"
└──► registers in RunnerRouter§Registration guard
- Duplicate runner names are rejected via
router.contains_label()check - Returns
ExecError::DuplicateRunnerif a runner with the same name exists
Structs§
- LogConfig
- Configuration for subprocess output logging.
- Subprocess
Backend Config - Low-level OS/kernel configuration for subprocess execution.
- Subprocess
Runner - Runner that executes
TaskKind::Subprocessas OS subprocesses. - Subprocess
Task Config - Subprocess configuration - fully resolved per-task parameters.
Constants§
- LABEL_
RUNNER_ NAME - Well-known label key used to identify a runner by name.
Functions§
- register_
subprocess_ runner - Register a subprocess runner with default settings.
- register_
subprocess_ runner_ with_ backend - Register a subprocess runner with explicit runner configuration.