This repository does not ship cgroupd or landlockd, but the example below
shows the intended host-side wiring for a single job J.
- Prepare the job paths.
mkdir -p /run/jobs/J/root /run/jobs/J/workspace /run/jobs/J/export
cp examples/cgroupd-landlockd.conf /tmp/fanotifyd-J.conf- Start
fanotifydbefore the workload so prepare-time and runtime writes are both observable. The example config usesmountmarks for job roots because inodewatchmarks only cover the marked directory and its direct children; a workload pivoted into the job root can write deeper paths such as/tmp/marker.
./fanotifyd --config /tmp/fanotifyd-J.conf- Launch the workload under the rest of the platform pipeline.
cgroupd run --job-id J -- \
landlockd run --root /run/jobs/J/root -- \
/run/jobs/J/root/bin/sh -lc 'echo hello >/workspace/out.txt'- Subscribe to the socket or tail the JSONL output.
tail -f /var/log/fanotifyd/J.jsonlExpected event records include job_id:"J", path_role values such as
rootfs, workspace, export, or cache, and decision:"allow"/"deny"
when --perm is enabled.