plimit(1) on Solnix vs Linux and the BSDs
plimit is the illumos command at /usr/bin/plimit that reads or sets the soft and hard resource limits of running processes by PID. Linux's closest tool is prlimit, which also accepts a command to run. FreeBSD's procstat can only display limits, and the bundle shows no FreeBSD command that changes them.
The manual pages
- Solnix: plimit(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: prlimit(1) util-linux-2.42.3 (different command, similar job)
- FreeBSD: procstat(1) 15.1-RELEASE (different command, similar job)
What Solnix runs
A default Solnix system runs the illumos plimit at /usr/bin/plimit. No other variants are shipped. It comes from pkgs.solnix.illumos-world-man.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux | soft/hard separator | Solnix plimit separates the soft and hard limits with a comma (soft,hard). Linux prlimit uses a colon (soft:hard, soft:, :hard). A limit string copied from one system fails on the other. Source: Solnix plimit(1) OPTIONS (soft,hard); Linux prlimit(1) DESCRIPTION (soft:hard) |
| Linux | selecting the resource | Solnix uses single-letter options for the limit to change: -c, -d, -f, -n, -s, -t and -v. Linux prlimit uses --resource[=limits]. The Linux text in the bundle does not list the option names, only a pointer to a RESOURCE OPTIONS section.Source: Solnix plimit(1) SYNOPSIS, OPTIONS; Linux prlimit(1) SYNOPSIS, DESCRIPTION |
| Linux | target process or command | Solnix plimit takes a list of PIDs as operands and can act on several at once. Linux prlimit takes one --pid PID, or runs a given command with the limits applied. The Solnix page documents no way to launch a command.Source: Solnix plimit(1) OPERANDS (pid, process ID list); Linux prlimit(1) SYNOPSIS, DESCRIPTION (When command is given) |
| Linux | omitted limit value | On Solnix, an empty soft field sets only the hard limit, and if the hard limit is omitted the comma may be dropped. On Linux, if one value is not given the existing one is kept, and a bare value sets both limits to the same value. Source: Solnix plimit(1) OPTIONS; Linux prlimit(1) DESCRIPTION |
| Linux | unlimited and units | Solnix accepts the string unlimited, and numbers with suffixes k, m, h or mm:ss. Suffix meaning depends on the resource: m is minutes for CPU time. Linux accepts -1 or 'unlimited'. The Linux text in the bundle documents no unit suffixes.Source: Solnix plimit(1) OPTIONS (nk, nm, nh, mm:ss); Linux prlimit(1) DESCRIPTION |
| Linux, FreeBSD | default units differ per option | Solnix limit arguments have per-option default units: -c and -f use 512-byte blocks, -d, -s and -v use kilobytes, -t uses seconds, and -n has no unit. A bare number is not in the same unit for every option.Source: Solnix plimit(1) OPTIONS (-c, -d, -f, -n, -s, -t, -v) |
| FreeBSD | read-only versus read-write | FreeBSD procstat rlimit (or -l) displays a process's resource limits, and rlimitusage shows their usage. Neither is described as changing limits. Solnix plimit both reports and sets them.Source: FreeBSD procstat(1) rlimit | -l, rlimitusage; Solnix plimit(1) DESCRIPTION |
| FreeBSD | how to display limits | On Solnix, plimit [-km] pid... reports limits, and -k and -m choose kilobytes or megabytes for sizes. On FreeBSD you give procstat a command (rlimit or -l) and PIDs, and -a covers all processes. The FreeBSD text shows no size-unit options.Source: Solnix plimit(1) SYNOPSIS, -k, -m; FreeBSD procstat(1) SYNOPSIS, rlimit | -l, -a |
| Linux, FreeBSD | permissions | On Solnix, only the process owner or the super-user can get or set limits, and only the super-user can raise a hard limit. The Linux page and the trimmed FreeBSD text do not state permission rules for limits. Source: Solnix plimit(1) DESCRIPTION; Linux prlimit(1); FreeBSD procstat(1) (limits not covered) |
| all four | OpenBSD and NetBSD | The bundle has no counterpart page for OpenBSD or NetBSD, so no comparison with them can be drawn. Source: Bundle header lists only linux prlimit(1) and freebsd procstat(1) |
Everyday tasks
| Task | Solnix | Linux | FreeBSD |
|---|---|---|---|
| show a process's resource limits | plimit pid | prlimit --pid PID | procstat rlimit pid (or procstat -l pid) |
| set core file size limits on a running process | plimit -c soft,hard pid | prlimit --pid PID --resource=limits (soft:hard) | — |
| set open file descriptor limits on a running process | plimit -n soft,hard pid | prlimit --pid PID --resource=limits (soft:hard) | — |
| run a command with changed limits | — | prlimit [options] [--resource[=limits]] command [argument...] | — |
| show limit usage | — | — | procstat rlimitusage pid |
Standards
- POSIX: plimit is not a POSIX.1-2024 utility.
- Linux: The prlimit(1) page cites ulimit(1p) in SEE ALSO and says the prlimit(2) system call is supported since Linux 2.6.36.
Writing portable scripts
- Do not assume one tool: plimit exists on Solnix, prlimit on Linux, and procstat on FreeBSD (read-only). Branch on which one is present.
- Write limits for the right syntax: comma (soft,hard) for plimit, colon (soft:hard) for prlimit. Use unlimited for no limit, which both pages accept.
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.