fuser(8) on Solnix vs Linux and the BSDs
On Solnix, fuser is the illumos /usr/sbin/fuser, documented in section 8, not section 1. Its single-letter flags often differ from Linux and the BSDs: -s sends a signal (it means silent on Linux), -n selects mandatory locks (a name space on Linux), and there is no -m, -M or -N.
The manual pages
- Solnix: fuser(8) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: fuser(1) psmisc-23.7
- FreeBSD: fuser(1) 15.1-RELEASE
- OpenBSD: fuser(1) 8.0
- Standard: POSIX.1-2024 (IEEE Std 1003.1-2024),
fuser
What Solnix runs
A default Solnix system runs the illumos fuser at /usr/sbin/fuser. No other variants are shipped. It is an administrator path under sbin, so scripts that call plain fuser need /usr/sbin on PATH. The page also shows kernel consumers of devices, such as [module_name], which the other pages do not mention.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | -s meaning | Solnix -s sig sends a signal to each process. FreeBSD and OpenBSD -s signal does the same. Linux -s means silent operation, and the signal is given as -SIGNAL together with -k. A Linux fuser -s check in a script will send a signal on Solnix.Source: Solnix fuser(8) -s sig; FreeBSD fuser(1) -s; OpenBSD fuser(1) -s; Linux fuser(1) -s, -SIGNAL |
| Linux | -n meaning | Solnix -n lists only processes holding non-blocking mandatory locks on a file. On Linux, -n NAMESPACE selects the file, udp or tcp name space, which is how Linux looks up processes using ports. The Solnix page documents no socket lookup.Source: Solnix fuser(8) -n; Linux fuser(1) -n, DESCRIPTION (TCP and UDP sockets) |
| Linux, FreeBSD | -m and -c for mount points | Solnix has no -m. -c reports on a mount point and files within it. Linux -m NAME does that, and Linux -c is only an alias for -m. FreeBSD -m means also search mmapped files, and FreeBSD -c is the mount-point option.Source: Solnix fuser(8) -c; Linux fuser(1) -c, -m; FreeBSD fuser(1) -c, -m |
| all four | -M and -N | Solnix has no -M or -N. FreeBSD and OpenBSD -M core and -N system read kernel values from a given core or system image. Linux -M takes no argument and requires the name to be a mount point.Source: Solnix fuser(8) SYNOPSIS; FreeBSD fuser(1) -M, -N; OpenBSD fuser(1) -M, -N; Linux fuser(1) -M, --ismountpoint |
| all four | -d option | Solnix -d reports device usage for all minor nodes bound to the same device node as the named minor node. It does not report files within a mounted file system. None of the Linux, FreeBSD or OpenBSD pages has -d.Source: Solnix fuser(8) -d; Linux fuser(1) OPTIONS; FreeBSD fuser(1) SYNOPSIS; OpenBSD fuser(1) SYNOPSIS |
| FreeBSD | t letter code | On Solnix, t means the file is the process's text file. On FreeBSD, t means the kernel tracing file, and x means executable text. Solnix has no x, and its m, n and o codes (mapped, mandatory lock, open) are not FreeBSD codes. Source: Solnix fuser(8) DESCRIPTION letter codes (m, n, o, t); FreeBSD fuser(1) symbol list (t, x) |
| Linux, OpenBSD | letter codes available | Linux codes are c, e, f, F, r, m and a placeholder dot, with f and F omitted by default. OpenBSD prints only c, r and t. Solnix prints c, m, n, o, r, t and y after each PID. Do not match codes across systems. Source: Solnix fuser(8) DESCRIPTION; Linux fuser(1) DESCRIPTION; OpenBSD fuser(1) DESCRIPTION |
| all four | -u format | Solnix -u shows the login name in parentheses after the process ID. OpenBSD prints it in brackets to standard error, and FreeBSD writes it to stderr. Linux -u appends the user name to each PID.Source: Solnix fuser(8) -u; OpenBSD fuser(1) -u; FreeBSD fuser(1) -u; Linux fuser(1) -u |
| Linux | exit status | The Linux page says fuser returns non-zero if none of the specified files is accessed, and zero if at least one access was found. The Solnix page has no EXIT STATUS section. The manual does not say what Solnix returns when nothing uses the file. Source: Linux fuser(1) DESCRIPTION; Solnix fuser(8) (no EXIT STATUS section) |
| FreeBSD, OpenBSD | exit status on the BSDs | FreeBSD and OpenBSD document exit 0 on success and >0 on error. The Solnix page documents no exit status, so a script cannot rely on the exit code to mean files are in use. Source: FreeBSD fuser(1) EXIT STATUS; OpenBSD fuser(1) EXIT STATUS; Solnix fuser(8) |
| Linux | options only on Linux | Linux has -a (show all files), -i (confirm before kill), -v (ps-like output), -l (list signals), -w, -4/-6 and -V. Solnix has none of these. Use ps(1) for process details.Source: Linux fuser(1) OPTIONS; Solnix fuser(8) OPTIONS and SEE ALSO |
| all four | per-group options | Solnix lets you respecify options for each further group of files, and a lone dash cancels the options in force. The Linux, FreeBSD and OpenBSD pages describe no such grouping. Source: Solnix fuser(8) SYNOPSIS and DESCRIPTION; Linux, FreeBSD and OpenBSD fuser(1) SYNOPSIS |
Standards
- POSIX: fuser is a POSIX.1-2024 utility.
- Solnix: Interface Stability: Standard.
- FreeBSD: The fuser utility is expected to conform to IEEE Std 1003.1-2004 (“POSIX.1”).
- OpenBSD: Compliant with the X/Open System Interfaces option of the IEEE Std 1003.1-2008 (“POSIX.1”) specification. The flags [
-kMNs] are extensions to that specification. - Linux:
-cand-fare described as kept for POSIX compatibility.-fis silently ignored.
Writing portable scripts
- Use only
-c,-f,-kand-uin portable scripts, and avoid-m,-nand-s. They mean different things or are missing on Solnix, Linux and FreeBSD. - Do not parse the letter codes or the user-name format. They differ on every system. Take the PID list from standard output and send everything else to a separate stream.
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.