atrm(1) on Solnix vs Linux and the BSDs
On Solnix, atrm is the illumos atrm at /usr/bin/atrm, a separate command that removes jobs by job number or by user name and has -a, -f and -i. Linux, FreeBSD and NetBSD document atrm only as 'atrm job ...' (Linux and NetBSD also take -V), so scripts that rely on -a, -f, -i or user names will fail there. OpenBSD matches Solnix on flags.
The manual pages
What Solnix runs
A default Solnix system runs the illumos atrm at /usr/bin/atrm, published in pkgs.solnix.illumos-world-man. No other variants are shipped. Removing other users' jobs needs solaris.jobs.admin privileges; the page points to auths(1) and auth_attr(5) for that.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| Linux, FreeBSD, NetBSD | -a, -f, -i options | Solnix atrm accepts -a (remove all your unexecuted jobs), -f (suppress removal messages) and -i (ask before each removal). The Linux, FreeBSD and NetBSD synopses show only job numbers, with -V on Linux and NetBSD, and no -a, -f or -i.Source: Solnix atrm(1) SYNOPSIS, OPTIONS -a -f -i; Linux atrm(1) SYNOPSIS; FreeBSD atrm(1) SYNOPSIS; NetBSD atrm(1) SYNOPSIS |
| Linux, FreeBSD, NetBSD | removing by user name | Solnix atrm accepts user names and removes all of that user's jobs, if you own them or have privilege. The Linux, FreeBSD and NetBSD synopses take only job numbers, and the pages do not describe user-name arguments. Source: Solnix atrm(1) SYNOPSIS, DESCRIPTION; Linux atrm(1) SYNOPSIS; FreeBSD atrm(1) SYNOPSIS; NetBSD atrm(1) SYNOPSIS |
| Linux, FreeBSD, NetBSD | separate command vs. page for at | On Linux, FreeBSD and NetBSD, atrm is documented inside the at(1) page, along with at -r and at -d as aliases for it. The Solnix atrm page is its own page and documents no at -r or at -d alias.Source: Linux atrm(1) NAME, OPTIONS -r -d; FreeBSD atrm(1) OPTIONS -r -d; NetBSD atrm(1) OPTIONS -r -d; Solnix atrm(1) NAME |
| Linux, NetBSD | -V option | Linux and NetBSD atrm accept -V, which prints the version number to standard error. The Solnix atrm page lists no -V.Source: Linux atrm(1) SYNOPSIS, OPTIONS -V; NetBSD atrm(1) SYNOPSIS, OPTIONS -V; Solnix atrm(1) OPTIONS |
| Linux, FreeBSD, NetBSD | who may remove other users' jobs | On Solnix, removing another user's jobs requires solaris.jobs.admin privileges, and root running -a empties the entire queue. The Linux, FreeBSD and NetBSD atrm text does not say who may remove other users' jobs, only that the superuser may use these commands.Source: Solnix atrm(1) DESCRIPTION, -a; Linux atrm(1) DESCRIPTION; FreeBSD atrm(1) DESCRIPTION; NetBSD atrm(1) DESCRIPTION |
| OpenBSD | privilege model | OpenBSD says only the superuser may remove other users' jobs. Solnix ties this to the solaris.jobs.admin privilege, which a non-root account can hold. The flags and arguments are otherwise the same: -a, -f, -i, job numbers and user names.Source: OpenBSD atrm(1) DESCRIPTION; Solnix atrm(1) DESCRIPTION, SYNOPSIS |
| OpenBSD | -i confirmation parsing | OpenBSD removes a job when the user answers 'y'. Solnix matches the answer against the yesexpr of the user's LC_MESSAGES locale, so the accepted affirmative depends on locale settings. Source: OpenBSD atrm(1) -i; Solnix atrm(1) -i, ENVIRONMENT VARIABLES |
| all four | environment variables | The Solnix page lists LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES and NLSPATH as affecting atrm. The Linux, FreeBSD, OpenBSD and NetBSD atrm text documents no environment variables that affect atrm. Source: Solnix atrm(1) ENVIRONMENT VARIABLES; Linux, FreeBSD, OpenBSD and NetBSD atrm(1) (no such section) |
| Linux, FreeBSD, NetBSD | access-control files | The Linux, FreeBSD and NetBSD pages tie at permissions to at.allow and at.deny: /etc/at/ on Linux, /var/at/ on FreeBSD and NetBSD. The Solnix atrm page names no such file and refers to privileges and auths(1) instead.Source: Linux atrm(1) DESCRIPTION; FreeBSD atrm(1) DESCRIPTION; NetBSD atrm(1) DESCRIPTION; Solnix atrm(1) DESCRIPTION, SEE ALSO |
Standards
- POSIX: atrm is not a POSIX.1-2024 utility.
- NetBSD: The at and batch utilities conform to IEEE Std 1003.2-1992 (“POSIX.2”). The page does not make this claim for atrm specifically.
- OpenBSD: The atrm command appeared in 4.3BSD.
- Solnix: The page text in the bundle gives no standards or interface stability statement.
Writing portable scripts
- For portability, use only job numbers: atrm job [job ...] works on every system in the bundle. Get job numbers from atq, and avoid
-a,-f,-iand user-name arguments, which only Solnix and OpenBSD document. - Do not rely on at
-ror at-daliases on Solnix; the Solnix atrm page documents neither. Call atrm directly.
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.