ps(1b) on Solnix vs Linux and the BSDs
ps(1b) documents the BSD-style /usr/ucb/ps, not the /usr/bin/ps that is on PATH by default on Solnix. It has a small fixed set of flags and no -o, -p or -A. Several letters mean something different from the BSDs: -r filters rather than sorts, -U is obsolete and prints nothing, and -g and -n do not exist on the BSDs.
The manual pages
- Solnix: ps(1b) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: ps(1) procps-4.0.6
- FreeBSD: ps(1) 15.1-RELEASE
- OpenBSD: ps(1) 8.0
- NetBSD: ps(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
ps
What Solnix runs
A default Solnix system runs the illumos ps at /usr/bin/ps. This page describes the other variant, /usr/ucb/ps, and the bundle has no text for /usr/bin/ps. For the options of the PATH command, see ps(1). Everything below about Solnix applies only if you run /usr/ucb/ps explicitly.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD, OpenBSD, NetBSD | -r meaning | Solnix /usr/ucb/ps -r restricts the listing to running and runnable processes. On OpenBSD and NetBSD, -r sorts by CPU usage. On FreeBSD, -r changes the sort order. None of them filters by state.Source: Solnix ps(1b) -r; OpenBSD ps(1) -r; NetBSD ps(1) -r; FreeBSD ps(1) DESCRIPTION (-m, -r, -u and -v change the sort order) |
| FreeBSD, OpenBSD, NetBSD | -U meaning | Solnix /usr/ucb/ps -U is obsolete: it has no effect and makes ps exit without printing a listing. On FreeBSD, OpenBSD and NetBSD, -U user selects processes by user. A script using ps -U user gets no output from /usr/ucb/ps.Source: Solnix ps(1b) -U; FreeBSD ps(1) SYNOPSIS (-U user); OpenBSD ps(1) -U; NetBSD ps(1) -U |
| FreeBSD, OpenBSD, NetBSD | -A, -a and -x selection | Solnix has no -A. -a adds other users' processes, -x adds processes without a controlling terminal, and -a -x together show everything. FreeBSD and NetBSD define -A as -a plus -x. OpenBSD -A shows all users including those without a terminal.Source: Solnix ps(1b) DESCRIPTION, -a, -x; FreeBSD ps(1) -A; NetBSD ps(1) -A; OpenBSD ps(1) -A, -a |
| FreeBSD, OpenBSD, NetBSD | -g and -n | Solnix -g shows process group leaders, which are hidden without it. -n replaces USER with a numeric UID. The FreeBSD and NetBSD option lists have no -g or -n, and OpenBSD documents both as not supported.Source: Solnix ps(1b) -g, -n; OpenBSD ps(1) STANDARDS ([-dfgn] not supported); FreeBSD ps(1) SYNOPSIS; NetBSD ps(1) SYNOPSIS |
| all four | no -o, -O, -p or -L | The Solnix /usr/ucb/ps page has only canned displays (-l, -u, -v). It documents no -o or -O keyword lists, no -L, and no -p. A process ID is a final bare argument (num). Linux, FreeBSD, OpenBSD and NetBSD all document -o.Source: Solnix ps(1b) SYNOPSIS, num; Linux ps(1) NOTES (-o and -O); FreeBSD ps(1) -o, -p; OpenBSD ps(1) -o, -p; NetBSD ps(1) -o, -p |
| FreeBSD, OpenBSD, NetBSD | column names in -u and -v | Solnix -u shows USER, %CPU, %MEM, SZ, RSS and START. OpenBSD and NetBSD -u use vsz where Solnix uses SZ. Solnix -v shows SIZE, %CPU, %MEM and RSS, a much shorter list than the BSD -v keyword list.Source: Solnix ps(1b) -u, -v; OpenBSD ps(1) -u, -v; NetBSD ps(1) -u, -v |
| OpenBSD, NetBSD | -u and -v sort side effects | On OpenBSD and NetBSD, -u implies -r and -v implies -m. The Solnix page describes no sort order or side effect for -u or -v.Source: OpenBSD ps(1) -u, -v; NetBSD ps(1) -u, -v; Solnix ps(1b) -u, -v |
| FreeBSD, OpenBSD, NetBSD | -t argument form | Solnix -t takes one terminal as a device file name (tty04, term/14) or, for tty names, just the digits (04). FreeBSD -t takes a comma-separated list. NetBSD uses ? for processes with no terminal.Source: Solnix ps(1b) -t; FreeBSD ps(1) SYNOPSIS (-t tty[,tty...]); NetBSD ps(1) -t |
| OpenBSD | -w width | Solnix -w uses 132 columns instead of 80, and -ww uses unlimited width. Wide output can be seen only by a superuser or the process owner. OpenBSD -w uses 132 columns instead of the window size. The Solnix page documents no COLUMNS variable.Source: Solnix ps(1b) -w; OpenBSD ps(1) -w, ENVIRONMENT (COLUMNS) |
| Linux | option syntax and default selection | Solnix says its options are combined into the first argument, with num last. Linux ps accepts Unix options with a dash, BSD options without one, and GNU long options. Linux warns that ps -aux can be read as -a plus user x. By default Linux selects processes of the same euid on the same terminal.Source: Solnix ps(1b) OPTIONS, num; Linux ps(1) DESCRIPTION, NOTES (ps -aux) |
| Linux | environment variables | Linux ps reads PS_FORMAT, PS_PERSONALITY, CMD_ENV, COLUMNS, LINES, POSIXLY_CORRECT and others. The Solnix page lists no environment variables for /usr/ucb/ps.Source: Linux ps(1) ENVIRONMENT VARIABLES; Solnix ps(1b) (no ENVIRONMENT section) |
Standards
- POSIX: ps is a POSIX.1-2024 utility. The Solnix ps(1b) page for
/usr/ucb/pshas no STANDARDS section. - Linux: This ps conforms to Version 2 of the Single Unix Specification, The Open Group Technical Standard Base Specifications, Issue 6, IEEE Std 1003.1, 2004 Edition, X/Open System Interfaces Extension [UP XSI] and ISO/IEC 9945:2003.
- OpenBSD: Compliant with IEEE Std 1003.1-2008 (“POSIX.1”) except that
-Gis unsupported and-p,-tand-Uaccept only single arguments. Of the X/Open System Interfaces flags,-d,-f,-gand-nare not supported, and-e,-land-ubehave differently.
Writing portable scripts
- On Solnix call
/usr/bin/ps(the PATH default) in scripts, not/usr/ucb/ps.The ucb page documents no-o,-por-A. - Avoid
-r,-U,-g,-nand-win portable scripts, because their meaning differs or they are missing. If you use-o, stick to the POSIX keywords listed in OpenBSD's STANDARDS section, such as pid, ppid, comm, args and time.
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.