nohup(1) on Solnix vs Linux and the BSDs
On Solnix, nohup is the illumos /usr/bin/nohup. Besides running a command with SIGHUP ignored, it has -p and -g modes that make already-running processes or process groups immune to hangups. No Linux or BSD page documents these modes.
The manual pages
- Solnix: nohup(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: nohup(1) coreutils-full-9.11
- FreeBSD: nohup(1) 15.1-RELEASE
- OpenBSD: nohup(1) 8.0
- NetBSD: nohup(1) 11.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
nohup
What Solnix runs
A default Solnix system runs the illumos /usr/bin/nohup. /usr/xpg4/bin/nohup is also shipped and takes only 'command [argument]...'. It ignores SIGHUP only, whereas /usr/bin/nohup ignores SIGHUP and SIGQUIT. The xpg4 variant's nohup.out handling is described in the page (see the differences below).
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | -p and -g on running processes | Solnix /usr/bin/nohup -p pid... and -g gpid... make processes already running, or whole process groups, immune to hangups. -F forces control and -a overrides an installed handler. The Linux and BSD pages document no options of this kind.Source: Solnix nohup(1) SYNOPSIS, OPTIONS (-p, -g, -F, -a); Linux nohup(1) SYNOPSIS; FreeBSD/OpenBSD/NetBSD nohup(1) SYNOPSIS |
| all four | SIGQUIT is also ignored | Solnix /usr/bin/nohup makes the process immune to SIGHUP and SIGQUIT. The Linux and BSD pages mention only hangup (SIGHUP) being ignored. Solnix /usr/xpg4/bin/nohup ignores SIGHUP only.Source: Solnix nohup(1) DESCRIPTION (/usr/bin/nohup, /usr/xpg4/bin/nohup); Linux nohup(1) DESCRIPTION; FreeBSD nohup(1) DESCRIPTION; OpenBSD nohup(1) DESCRIPTION; NetBSD nohup(1) DESCRIPTION |
| all four | nohup.out redirection in /usr/bin/nohup | For command mode, the Solnix page describes the nohup.out file, the HOME fallback, the 600 permissions and the stderr handling only under /usr/xpg4/bin/nohup. It does not say whether /usr/bin/nohup redirects output the way the other four systems document. Check on the target system before relying on it.Source: Solnix nohup(1) DESCRIPTION (/usr/xpg4/bin/nohup paragraph); Linux/FreeBSD/OpenBSD/NetBSD nohup(1) DESCRIPTION |
| Linux | stdin and stderr handling | Linux nohup redirects stdin from an unreadable file when it is a terminal. The Solnix page does not mention stdin. For /usr/xpg4/bin/nohup, Solnix redirects stderr to stdout only if stderr is a terminal, and otherwise leaves it alone.Source: Linux nohup(1) DESCRIPTION; Solnix nohup(1) DESCRIPTION (/usr/xpg4/bin/nohup) |
| Linux | exit status 125 vs 127 | Linux nohup exits 125 when nohup itself fails, and 127 only when COMMAND cannot be found. Solnix, like the BSDs, uses 127 for both an error in nohup and a missing command, and has no 125. Source: Linux nohup(1) Exit status; Solnix nohup(1) EXIT STATUS; FreeBSD/OpenBSD/NetBSD nohup(1) EXIT STATUS |
| OpenBSD, NetBSD | failure to create nohup.out | OpenBSD and NetBSD nohup exit without running the utility if nohup.out cannot be created in the current or home directory. The Solnix page does not say what happens in that case. Source: OpenBSD nohup(1) DESCRIPTION; NetBSD nohup(1) DESCRIPTION; Solnix nohup(1) DESCRIPTION |
| FreeBSD | -- separator and PATH | FreeBSD nohup accepts '--' before the utility and documents PATH for locating the utility. The Solnix SYNOPSIS shows no '--', but its ENVIRONMENT VARIABLES section lists PATH, LANG, LC_ALL, LC_CTYPE, LC_MESSAGES and NLSPATH. Source: FreeBSD nohup(1) SYNOPSIS, ENVIRONMENT; Solnix nohup(1) ENVIRONMENT VARIABLES |
| Linux | --help and --version | Linux nohup (GNU coreutils) accepts --help and --version. The Solnix page documents no long options.Source: Linux nohup(1) DESCRIPTION; Solnix nohup(1) OPTIONS |
| all four | shell builtins as command | Solnix says results are undefined if command names a special shell builtin. Linux notes that a shell's own nohup usually supersedes the program. FreeBSD says some shells have a builtin, and OpenBSD says csh(1) has one with different syntax. Source: Solnix nohup(1) OPERANDS (command); Linux nohup(1) DESCRIPTION; FreeBSD nohup(1) DESCRIPTION; OpenBSD nohup(1) STANDARDS |
Standards
- POSIX: nohup is a POSIX.1-2024 utility.
- Solnix: ATTRIBUTES lists CSI as Enabled for both
/usr/bin/nohupand/usr/xpg4/bin/nohup.The remaining attribute rows are cut off in the bundle. - FreeBSD: The nohup utility is expected to be IEEE Std 1003.2 (“POSIX.2”) compatible.
- OpenBSD: The nohup utility is compliant with the IEEE Std 1003.1-2008 (“POSIX.1”) specification.
- NetBSD: The nohup command is expected to be IEEE Std 1003.2 (“POSIX.2”) compatible.
- Linux: The Linux page has no STANDARDS section.
Writing portable scripts
- Use only 'nohup command [args]' in portable scripts.
-p,-g,-Fand-aexist only on Solnix and are not documented elsewhere. - Redirect output yourself ('nohup cmd > file 2>&1 &') instead of relying on nohup.out. The documentation of its location and fallback differs between systems.
- Treat 126 and 127 as the common error codes. Only Linux adds 125 for a failure in nohup itself.
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.