# fxctl $ fxctl grep 'boot ok'

Logs & probes

The init-hosted probe loop

// process · fs · file · device · kernel · net · env

fx_probe_refresh rebuilds the probe relations from the live system (or a fixture root for tests) inside a single transaction: delete-all existing tuples, then add fresh. fx-init is the sole writer of the runtime DB, so the probe is the only thing that populates these relations.

RelationColumns
processpid, ppid, uid, comm, state, rss_kb.
fspath, fstype, total_kb, used_kb, avail_kb.
filepath, size, mode, uid, gid, mtime.
devicename, major, minor, type, size.
kernelversion, release, hostname, uptime_s, load1_x100, mem_total_kb, mem_free_kb.
netiface, addr, mac, state, rx_bytes, tx_bytes.
envkey, value.

The DAFSA-interned service log DB

// a separate datalog DB, held for life by fx-init

The log DB is a separate datalog DB from the runtime DB, held for life by fx-init. Its single relation is log(ts_epoch_s, svc, level, msg). The svc, level and msg strings are interned via dl_intern_str, so repeated text collapses to one symbol — the DAFSA shared-suffix store means a thousand copies of the same log line cost one message plus a thousand small tuples.

Service stdout/stderr is piped to init and drained line-buffered into the log DB, so a service's output is searchable through fxctl alongside init's own status lines.