systemg

Search docs

/
Install

Commands

version

Report the version of the binary you just ran and the version the resident supervisor is actually serving. These are not the same thing.

$ sysg version
sysg 0.64.1 (this binary)
supervisor 0.63.3 (pid 4311)
  executing /usr/lib/systemg/versions/0.63.3/sysg
  drift: the supervisor is still serving 0.63.3; rerun the installer to activate 0.64.1

Why the two differ

Installing sysg replaces the binary on disk and then asks the resident supervisor to re-exec into it. If that activation step is skipped or fails, the supervisor keeps serving the build it booted with — from the same PID, with the same start time. sysg --version reads the binary on disk and will happily report the new number while the old code is still running every service on the box.

sysg version asks the supervisor directly over the control socket, so the answer describes what is running, not what is installed.

Options

ShortLongDescription
---formatEmit machine-readable output (json)
$ sysg version --format json
{
  "cli": "0.64.1",
  "supervisor": "0.63.3",
  "supervisor_pid": 4311,
  "supervisor_binary": "/usr/lib/systemg/versions/0.63.3/sysg"
}

supervisor is null when no supervisor answers the socket. supervisor_binary is resolved from /proc/<pid>/exe and is null where the kernel does not expose it.

sysg doctor prints the same report above its invariant findings.

purgespawn