jobs(1) on Solnix vs Linux and the BSDs
On Solnix, jobs is the illumos /usr/bin/jobs, and its page covers the jobs, fg, bg, stop and notify built-ins of sh, csh, ksh and ksh93. The FreeBSD and NetBSD counterparts are the builtin(1) index and the csh(1) page, so they document no jobs options. The Solnix sh -x and -p options and the stop command are not documented there.
The manual pages
- Solnix: jobs(1) from
pkgs.solnix.illumos-world-man· illumos.org - FreeBSD: jobs(1) 15.1-RELEASE
- NetBSD: jobs(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
jobs
What Solnix runs
A default Solnix system runs the illumos jobs at /usr/bin/jobs. /usr/xpg4/bin/jobs is also shipped, but the bundle does not say how it differs. The page documents separate behaviour per shell: sh and ksh take % job_id, ksh93 takes job_id without %, and csh has its own jobs, fg, bg, notify and stop.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| FreeBSD | what the page is | The FreeBSD jobs(1) page is the builtin(1) index of shell built-ins, not a jobs reference. It lists jobs for csh(1) and sh(1), and marks it No* (an external script wrapping the built-in). It documents no jobs options. Source: FreeBSD jobs(1) NAME, Commands table (jobs: No*, csh Yes, sh Yes; No* footnote) |
| NetBSD | what the page is | The NetBSD jobs(1) page is the csh(1) manual. jobs is a csh built-in described under Jobs, which says only that the job table is printed by the jobs command. The visible text documents no jobs options. Source: NetBSD jobs(1) NAME, Jobs section |
| NetBSD | flags are not jobs options | The flags extracted from the NetBSD page (-b -c -e -f -i -l -m -n -s -t -v -x and others) are csh startup flags. For example, -l means login shell and -n means parse only. They are not options of jobs, unlike Solnix jobs -l and -n.Source: NetBSD jobs(1) SYNOPSIS and Argument list processing (-l, -n); Solnix jobs(1) ksh -l, -n |
| FreeBSD, NetBSD | jobs options | Solnix sh jobs takes -l (process group ID and working directory) and -p (process group IDs only). ksh jobs takes -l, -n and -p. The FreeBSD and NetBSD pages document none of these, so their behaviour cannot be confirmed from the manuals.Source: Solnix jobs(1) sh and ksh OPTIONS; FreeBSD jobs(1) Commands table; NetBSD jobs(1) Jobs |
| FreeBSD, NetBSD | jobs -x | Solnix sh has jobs -x command [arguments], which replaces job IDs in the arguments with process group IDs and runs the command. The FreeBSD and NetBSD pages do not document this form.Source: Solnix jobs(1) sh SYNOPSIS and -x; FreeBSD jobs(1); NetBSD jobs(1) Jobs |
| FreeBSD | stop built-in | Solnix documents stop in sh, csh and ksh, stopping a job by % job_id or any process by pid. The FreeBSD table lists stop only for csh, not sh. The NetBSD text visible here does not mention it. Source: Solnix jobs(1) SYNOPSIS (stop in sh, csh, ksh); FreeBSD jobs(1) Commands table (stop: csh Yes, sh No) |
| FreeBSD | notify built-in | Solnix documents notify only for csh, and the FreeBSD table likewise lists notify only for csh. Neither sh nor ksh has it on either system. Source: Solnix jobs(1) csh SYNOPSIS; FreeBSD jobs(1) Commands table (notify: csh Yes, sh No) |
| FreeBSD | jobid built-in | The FreeBSD table lists a jobid built-in for sh. The Solnix page documents no jobid command. Its sh equivalent for turning job IDs into process group IDs is jobs -x.Source: FreeBSD jobs(1) Commands table (jobid: sh Yes); Solnix jobs(1) sh SYNOPSIS |
| FreeBSD, NetBSD | job control must be enabled | In the Solnix Bourne shell, jobs works when Job Control is enabled; invoking the shell as jsh enables it, typically for interactive shells only. The FreeBSD and NetBSD texts do not say how Job Control is enabled. Source: Solnix jobs(1) sh DESCRIPTION (jsh); FreeBSD jobs(1); NetBSD jobs(1) Jobs |
| FreeBSD, NetBSD | -l output differs by shell on Solnix | Solnix jobs -l prints different things per shell. sh gives process group ID and working directory. csh adds process IDs. ksh gives job number, current job, process group ID, state and command.Source: Solnix jobs(1) sh -l, csh -l, ksh -l |
Standards
- POSIX: jobs is a POSIX.1-2024 utility.
Writing portable scripts
- Do not use jobs
-xor stop in portable scripts: the FreeBSD and NetBSD pages do not document jobs-x, and FreeBSD sh has no stop. Use kill with a process ID instead. - Avoid jobs in non-interactive scripts. The Solnix page says Job Control is typically enabled for interactive shells only, and the BSD pages do not describe it.
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.