logadm(8) on Solnix vs Linux and the BSDs

logadm is the illumos log rotation tool at /usr/sbin/logadm. It reads /etc/logadm.conf, where each line is a log name followed by logadm command-line options. Linux logrotate and the BSD newsyslog use different configuration models, and none of them share logadm's option letters.

What Solnix runs

A default Solnix system runs the illumos logadm at /usr/sbin/logadm. No other variants are shipped. The counterparts are different programs with similar purposes: logrotate on Linux, newsyslog on FreeBSD, OpenBSD and NetBSD. The bundle's Solnix text is trimmed after -N/-o, so options such as -p, -s, -t, -z and -P are described here only where the visible text covers them.

Differences

Compared withTopicWhat differs
FreeBSD, OpenBSD, NetBSDconfiguration file formatSolnix /etc/logadm.conf lines are 'logname options', where options are written exactly as on the command line. The BSD /etc/newsyslog.conf uses positional fields: logfile_name, owner:group, mode, count, size, when, then flags.
Source: Solnix logadm(8) DESCRIPTION (/etc/logadm.conf lines of the form logname options); OpenBSD newsyslog(8) config fields; NetBSD newsyslog(8) config fields
Linuxconfiguration modellogrotate takes one or more config files as arguments, can read a whole directory, and uses an include directive. logadm reads /etc/logadm.conf when run with no arguments, and -f conf_file selects another file.
Source: Linux logrotate(8) DESCRIPTION (config files, include directive); Solnix logadm(8) DESCRIPTION, -f
Linuxno-argument behaviourWith no arguments, logadm processes every entry in /etc/logadm.conf. With no arguments, logrotate only prints version, copyright and a usage summary and rotates nothing.
Source: Solnix logadm(8) DESCRIPTION; Linux logrotate(8) DESCRIPTION
all fourforcing a rotationOn Solnix, -p now forces a rotation. The Solnix option list has no -F or -f force flag, and -f means 'use this config file'. logrotate uses -f/--force. newsyslog uses -F; FreeBSD -R tagname forces named files only.
Source: Solnix logadm(8) DESCRIPTION (-p now), -f; Linux logrotate(8) -f; FreeBSD newsyslog(8) -F, -R; OpenBSD newsyslog(8) -F; NetBSD newsyslog(8) SYNOPSIS
all fourdry runSolnix logadm -n prints the actions without performing them. logrotate -d/--debug changes nothing and does not update the state file. newsyslog -n does the same as logadm -n; on FreeBSD it also implies -r.
Source: Solnix logadm(8) -n; Linux logrotate(8) -d; FreeBSD newsyslog(8) -n; OpenBSD newsyslog(8) -n
FreeBSD, OpenBSD, NetBSDdefault rotation and retentionWith no -s or -p, logadm rotates when the log is non-zero in size and at least one week has passed (-s 1b -p 1w). It keeps ten old logs (-C 10). The BSDs have no such defaults; size, interval and count are config-file fields.
Source: Solnix logadm(8) DESCRIPTION, -C; OpenBSD newsyslog(8) count, size, when fields
FreeBSD, OpenBSD, NetBSDcombining size and time conditionsSolnix: -s and -p combine with an implied AND, so all must be met. OpenBSD: with a size plus a time or interval, rotation happens if either is reached. When both time and interval are given, OpenBSD requires both and NetBSD requires either.
Source: Solnix logadm(8) DESCRIPTION (implied and); OpenBSD newsyslog(8) when field; NetBSD newsyslog(8) when field
FreeBSD, OpenBSD, NetBSDdaemon restartlogadm runs the shell commands given with -b before and -a after the rename, once per invocation and not once per log. The newsyslog pages describe signalling syslogd(8) (FreeBSD -S pidfile, -s to skip), and the Solnix page shows no such signalling.
Source: Solnix logadm(8) -a, -b; FreeBSD newsyslog(8) -r, -s, -S; OpenBSD newsyslog(8) -r
FreeBSD, OpenBSD, NetBSDcopy-and-truncate and expiry hookslogadm -c copies and truncates instead of renaming, and -E cmd runs a command, with $file expanded, to expire an old log instead of deleting it. The visible BSD newsyslog texts show no matching options.
Source: Solnix logadm(8) -c, -E; FreeBSD newsyslog(8) OPTIONS; OpenBSD newsyslog(8) options; NetBSD newsyslog(8) SYNOPSIS
FreeBSD, OpenBSD, NetBSDrunning as non-rootlogadm -f lets non-root users keep their own configuration file. newsyslog -r removes the root-only restriction, and the FreeBSD and OpenBSD pages say it then cannot signal syslogd.
Source: Solnix logadm(8) -f; FreeBSD newsyslog(8) -r; OpenBSD newsyslog(8) -r
OpenBSDlogs named on the command lineOn OpenBSD each log named on the command line must have an entry in /etc/newsyslog.conf. The visible Solnix text says logname may be an entry name or a fully qualified pathname, and does not say an entry is required.
Source: OpenBSD newsyslog(8) DESCRIPTION; Solnix logadm(8) DESCRIPTION (logname)
Linuxstate file and lockinglogrotate records state in /var/lib/logrotate.status by default and locks it, exiting 3 if the lock cannot be taken. The visible Solnix text does not name a state file or exit codes.
Source: Linux logrotate(8) -s, --skip-state-lock; Solnix logadm(8) (visible text)

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSDNetBSD
process all configured logslogadmlogrotate config_filenewsyslognewsyslognewsyslog
use an alternate config filelogadm -f conf_filelogrotate config_filenewsyslog -f config_filenewsyslog -f config_filenewsyslog -f config_file
dry runlogadm -nlogrotate -dnewsyslog -nnewsyslog -nnewsyslog -n
force rotationlogadm -p now lognamelogrotate -f config_filenewsyslog -Fnewsyslog -Fnewsyslog -F
rotate only named logslogadm logname—newsyslog -R tagname filenewsyslog lognewsyslog file
keep no more than N old logslogadm -C count—count field in newsyslog.confcount field in newsyslog.confngen field in newsyslog.conf

Standards

  • POSIX: logadm is not a POSIX.1-2024 utility.
  • Solnix: The visible Solnix text states no standard or interface stability level.

Writing portable scripts

  • Do not share rotation config between systems. logadm.conf, logrotate config and newsyslog.conf use three different formats, so generate each from one source or maintain them separately.
  • Test with the dry-run flag for each tool before scheduling it: logadm -n, logrotate -d, newsyslog -n.

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.