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.

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 withTopicWhat differs
FreeBSDoptionsSolnix 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 ...)
FreeBSDsame program or notOn 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
FreeBSDoutput formatFreeBSD 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
FreeBSDcore file operandsSolnix 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
FreeBSDauxiliary vector and single-line outputSolnix 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 meaningSolnix 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 optionSolnix 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
FreeBSDcharacter encoding of outputSolnix 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, NetBSDno counterpart in the bundleThe 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, -l and -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.