ctstat(1) on Solnix vs Linux and the BSDs

On Solnix, ctstat is the illumos tool at /usr/bin/ctstat that lists system contracts (process contracts). The Linux ctstat(8) page in the bundle documents lnstat, a kernel network-statistics printer, so the two commands share a name but do unrelated jobs and take different options.

What Solnix runs

A default Solnix system runs the illumos ctstat at /usr/bin/ctstat. No other variants are shipped. The bundle contains no FreeBSD, OpenBSD or NetBSD counterpart page, so no BSD comparison can be made from it. Related Solnix pages: ctrun(1), ctwatch(1), contract(5), process(5).

Differences

Compared withTopicWhat differs
Linuxwhat the command doesSolnix ctstat displays active system contracts. The Linux ctstat(8) page is titled lnstat and prints kernel network statistics read from files in /proc/net/stat/. A Linux user who knows ctstat as the network tool gets contract listings on Solnix.
Source: Solnix ctstat(1) NAME, DESCRIPTION; Linux ctstat(8) NAME, DESCRIPTION
Linux-i meaningSolnix ctstat -i takes a list of numeric contract IDs to report on. Linux -i/--interval takes a number of seconds between reports. The same flag has unrelated meanings.
Source: Solnix ctstat(1) -i contractid...; Linux ctstat(8) -i, --interval
Linuxinterval and countSolnix takes interval and count as trailing operands: ctstat [interval [count]]. Linux uses the options -i for the interval and -c/--count for the number of intervals. There are no operands in the Linux synopsis.
Source: Solnix ctstat(1) SYNOPSIS, OPERANDS; Linux ctstat(8) SYNOPSIS, -c, -i
Linux-v and version flagSolnix -v means verbose output. The Linux page has no -v. It documents -V/--version to show the program version. The Solnix page documents no version option.
Source: Solnix ctstat(1) -v; Linux ctstat(8) -V, --version
Linuxselecting what to showSolnix selects contracts with -i (IDs) and -t (type; only process is listed), and -a includes every state. Linux selects statistics with -f (file) and -k (keys). The Linux page has no -a or -t.
Source: Solnix ctstat(1) -a, -i, -t; Linux ctstat(8) -f, -k
Linuxdefault selectionBy default Solnix shows only contracts in the owned, inherited or orphan states; -a shows all states. Linux by default prints all columns of all files in /proc/net/stat, and after each interval prints only the difference from the last value.
Source: Solnix ctstat(1) -a; Linux ctstat(8) DESCRIPTION, -f
LinuxtimestampsSolnix -T u prints the internal time representation and -T d prints standard date format. The Linux page documents no timestamp option. Its -s [0-2] only controls header display.
Source: Solnix ctstat(1) -T; Linux ctstat(8) -s, --subject
Linuxoutput formatLinux can emit JSON with -j/--json and set field widths with -w. The Solnix page documents neither. Its human-readable output is Uncommitted, so do not parse it.
Source: Linux ctstat(8) -j, -w; Solnix ctstat(1) ATTRIBUTES
Linuxexit statusSolnix documents exit 0 for success, 1 for an error and 2 for invalid arguments. The Linux page has no EXIT STATUS section, so its exit values are not documented in the bundle.
Source: Solnix ctstat(1) EXIT STATUS; Linux ctstat(8) (no such section)

Standards

  • POSIX: ctstat is not a POSIX.1-2024 utility.
  • Solnix: Interface Stability: the human readable output is Uncommitted; the invocation is Committed.
  • Linux: The Linux ctstat(8) page states no standards.

Writing portable scripts

  • Do not call ctstat in scripts meant for several systems: it lists contracts on Solnix, while the Linux ctstat(8) page documents lnstat, a network-statistics tool.
  • Do not parse Solnix ctstat output. Only the invocation is Committed; the human readable output is Uncommitted.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.