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.

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 withTopicWhat differs
FreeBSD, OpenBSD, NetBSD-r meaningSolnix /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 meaningSolnix /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 selectionSolnix 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 -nSolnix -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 fourno -o, -O, -p or -LThe 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, NetBSDcolumn names in -u and -vSolnix -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 effectsOn 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 formSolnix -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 widthSolnix -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)
Linuxoption syntax and default selectionSolnix 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)
Linuxenvironment variablesLinux 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/ps has 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 -G is unsupported and -p, -t and -U accept only single arguments. Of the X/Open System Interfaces flags, -d, -f, -g and -n are not supported, and -e, -l and -u behave 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, -p or -A.
  • Avoid -r, -U, -g, -n and -w in 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.