proc(1) on Solnix vs Linux and the BSDs

proc(1) documents a family of illumos tools (pflags, pcred, pldd, psig, pstack, pfiles, pwdx, pstop, prun, pwait, ptime) that inspect or control a process through /proc. No Linux or BSD command matches the whole set. pfiles maps loosely to lsof or fstat, and pwdx exists in FreeBSD's procstat page.

What Solnix runs

A default Solnix system runs the illumos tools, and the SYNOPSIS lists them as /usr/bin/pflags, /usr/bin/pfiles and so on. No other variants are shipped. pfiles, pldd and pstack stop the target process while they inspect it. This is a family of commands, not one program with subcommands.

Differences

Compared withTopicWhat differs
all fourtool modelSolnix has one small command per task (pfiles, pstack, pldd, pwdx and so on), each working on pids or core files. lsof and the BSD fstat are single programs that select by option. FreeBSD procstat uses subcommands or flags.
Source: Solnix proc(1) SYNOPSIS and DESCRIPTION; Linux lsof(8) SYNOPSIS; FreeBSD procstat(1) SYNOPSIS; FreeBSD/OpenBSD/NetBSD fstat(1) SYNOPSIS
all fourpfiles stops the targetSolnix pfiles, pldd and pstack stop the target process while inspecting it, so a process cannot run meanwhile. The fstat and lsof pages in the bundle do not say they stop processes. fstat calls its output a snapshot.
Source: Solnix proc(1) USAGE; FreeBSD/OpenBSD/NetBSD fstat(1) BUGS; Linux lsof(8) DESCRIPTION
all four-F meaningOn Solnix, -F means force: grab the target even if another process controls it. The page warns that two controllers on one process can cause chaos. In lsof, -F selects parseable output. fstat has no -F.
Source: Solnix proc(1) OPTIONS -F and USAGE; Linux lsof(8) DESCRIPTION and -F; fstat(1) SYNOPSIS on FreeBSD, OpenBSD, NetBSD
FreeBSD, OpenBSD, NetBSD-n meaningSolnix psig -n shows handler addresses instead of names, and pfiles -n gives non-verbose output. In fstat -n means numerical format: device numbers and octal modes instead of names and symbolic modes.
Source: Solnix proc(1) OPTIONS -n; FreeBSD/OpenBSD/NetBSD fstat(1) -n
all four-p, -u, -g, -l, -m, -v meaningsIn Solnix, -p belongs to ptime and -u, -g and -l to pcred, where -u and -g set IDs. -m is microstate output in ptime, mount point in pwdx. fstat -p and -u select files by pid or user, and FreeBSD fstat -m adds mmap files. lsof -u and -g select.
Source: Solnix proc(1) OPTIONS (pcred, ptime, pwdx); FreeBSD fstat(1) -m, -p, -u; Linux lsof(8) OPTIONS -u, -g, -p
FreeBSDpwdxSolnix pwdx [-m] [-q | -v] prints a process's working directory, its mount point with -m, or only the path with -q. FreeBSD ships pwdx pid ... with procstat, documented as mimicking the Solaris utilities. Its page lists no -m, -q or -v for pwdx.
Source: Solnix proc(1) pwdx and OPTIONS; FreeBSD procstat(1) SYNOPSIS and DESCRIPTION
FreeBSDstack tracesSolnix pstack prints a hex and symbolic stack trace for a process or chosen lwps. FreeBSD procstat kstack (-k) shows the stacks of kernel threads and excludes threads running in userspace on a CPU. The two are not the same view.
Source: Solnix proc(1) pstack; FreeBSD procstat(1) kstack | -k
all fourchanging another process's credentialsSolnix pcred can set another process's UIDs, GIDs and supplementary groups, given enough privilege under setuid(2) and control of the target. The bundled lsof, pstree, pmap, procstat and fstat text only reports. procstat credential (-s) displays them.
Source: Solnix proc(1) pcred and OPTIONS; FreeBSD procstat(1) credential(s) | -s; lsof(8), pstree(1), pmap(1), fstat(1)
all fourstop, run, wait toolsSolnix has pstop, prun and pwait: stop a process or lwp (PR_REQUESTED), set it running again, and wait for processes to terminate. The counterpart pages in the bundle show no equivalent.
Source: Solnix proc(1) pstop, prun, pwait; Linux lsof/pstree/pmap(1), FreeBSD procstat/fstat(1), OpenBSD/NetBSD fstat(1)
all fourpid, /proc/nnn, lwp and core argumentsSolnix tools accept /proc/nnn as a pid, so /proc/* selects all processes. Some accept core files, and /thread-id suffixes such as /1,2,7-9 pick lwps. fstat selects with -p pid, and FreeBSD procstat also accepts cores.
Source: Solnix proc(1) DESCRIPTION; fstat(1) -p on FreeBSD, OpenBSD, NetBSD; FreeBSD procstat(1) SYNOPSIS
Linuxmemory map and process treeThe Solnix page lists pldd for loaded libraries, including dlopen(3C) ones, but no memory-map or process-tree tool. Linux pmap reports a process memory map, and pstree draws a process tree. Check the rest of the Solnix manual.
Source: Solnix proc(1) pldd; Linux pmap(1) DESCRIPTION; Linux pstree(1) DESCRIPTION

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
list a process's open filespfiles pidlsof -p pidfstat -p pid or procstat -f pidfstat -p pidfstat -p pid
show a process's working directorypwdx pid—pwdx pid——
show a process's credentialspcred pid—procstat -s pid——
list loaded shared librariespldd pid————
show a process's memory map—pmap pid———
show processes as a tree—pstree———
show a process's stackpstack pid—procstat kstack pid (kernel stacks)——
stop and resume a processpstop pid, prun pid————
wait for a process to exitpwait pid————

Standards

  • POSIX: proc(1) is not a POSIX.1-2024 utility.
  • Linux: pmap(1): No standards apply, but pmap looks an awful lot like a SunOS command.
  • FreeBSD: procstat(1): pargs, penv and pwdx mimic the behavior of Solaris utilities of the same names.

Writing portable scripts

  • Do not script against pfiles, pwdx, pstack or pldd on Linux or the BSDs. Pick the tool per OS: pfiles on Solnix, lsof on Linux, fstat or procstat on the BSDs.
  • Never mix flag letters between these tools. -F, -n, -p, -u, -m and -v mean different things in Solnix proc tools, lsof and fstat.

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.