pargs(1) on Solnix vs Linux and the BSDs
On Solnix, pargs is the illumos /usr/bin/pargs, which also covers penv and pauxv. The FreeBSD pargs is a different program: it is a link to procstat and takes only pid operands, with no options. Neither Linux nor OpenBSD nor NetBSD has a counterpart page in the bundle.
The manual pages
- Solnix: pargs(1) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: pargs(1) 15.1-RELEASE
What Solnix runs
A default Solnix system runs the illumos pargs at /usr/bin/pargs. No other variants are shipped. The same page documents penv (equivalent to pargs -e) and pauxv (equivalent to pargs -x). The bundle does not say where those two commands are installed.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD | options | Solnix pargs takes -a, -c, -e, -F, -l and -x. FreeBSD pargs, penv and pwdx take only [--libxo] and pid operands, so a Solnix script that passes options to pargs will not work as written on FreeBSD.Source: Solnix pargs(1) SYNOPSIS; FreeBSD pargs(1) SYNOPSIS (pargs [--libxo] pid ...) |
| FreeBSD | same program or not | On FreeBSD, pargs, penv and pwdx are documented as part of procstat(1), and the page says they mimic the Solaris utilities of the same names. Solnix pargs is the illumos utility itself. Source: FreeBSD pargs(1) NAME and DESCRIPTION; Solnix pargs(1) NAME |
| FreeBSD | output format | FreeBSD output is a table whose first field is the process ID, with headers that -h suppresses. It can also be produced via libxo with --libxo. The Solnix page describes no table, no headers and no libxo output.Source: FreeBSD pargs(1) DESCRIPTION (--libxo, -h, table output); Solnix pargs(1) DESCRIPTION |
| FreeBSD | core file operands | Solnix pargs, pauxv and penv accept a pid or a core file. The FreeBSD pargs, penv and pwdx synopses take only pid operands. Core files are accepted by procstat, not by the pargs form. Source: Solnix pargs(1) SYNOPSIS and OPERANDS; FreeBSD pargs(1) SYNOPSIS |
| FreeBSD | auxiliary vector and single-line output | Solnix pargs has -x for the auxiliary vector (also pauxv) and -l to print arguments as one /bin/sh command line. In FreeBSD, the auxiliary vector is a procstat command (auxv or -x), and the page documents no equivalent of -l.Source: Solnix pargs(1) -x, -l; FreeBSD pargs(1) auxv | -x |
| FreeBSD | -e and -c meaning | Solnix pargs -e prints environment, and -c forces 7-bit ASCII decoding of the target's strings. In FreeBSD procstat, -e is environment (the same task), but -c means command-line arguments. Do not carry -c over.Source: Solnix pargs(1) -c, -e; FreeBSD pargs(1) argument(s) | -c; environment | -e |
| FreeBSD | -F force option | Solnix pargs -F grabs a target process even if another process controls it. The page warns this can lead to chaos. The FreeBSD pargs form has no -F.Source: Solnix pargs(1) -F and USAGE; FreeBSD pargs(1) SYNOPSIS |
| FreeBSD | character encoding of output | Solnix pargs prints unprintable characters as escaped octal (\xxx), tries to match the target process's locale using iconv(3C), and falls back to 7-bit ASCII. The FreeBSD page documents no such handling. Source: Solnix pargs(1) DESCRIPTION; FreeBSD pargs(1) DESCRIPTION |
| Linux, OpenBSD, NetBSD | no counterpart in the bundle | The bundle holds no pargs page for Linux, OpenBSD or NetBSD, so this page makes no claim about how they behave. Source: Bundle header (COUNTERPART freebsd only) |
Standards
- POSIX: pargs is not a POSIX.1-2024 utility.
- Solnix: Interface Stability: Evolving.
Writing portable scripts
- Do not rely on pargs options in portable scripts. Solnix pargs has
-a,-c,-e,-F,-land-x, while FreeBSD pargs accepts only pid operands. Test for the tool and its options before use.
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.