vacation(1) on Solnix vs Linux and the BSDs

On Solnix, vacation is the illumos /usr/bin/vacation. Run with no arguments it is an interactive installer that creates .vacation.msg and .forward. The reply interval is set with -t, which accepts s, m, h, d and w suffixes. FreeBSD ignores -t and uses -r, and OpenBSD has no -t.

What Solnix runs

A default Solnix system runs the illumos vacation at /usr/bin/vacation. /usr/ucb/vacation is also shipped, but the bundle does not describe it. The page is published in pkgs.solnix.illumos-world-man.

Differences

Compared withTopicWhat differs
all fourinteractive installerSolnix vacation with no arguments starts an installer. It creates .vacation.msg, opens VISUAL, EDITOR or vi(1), and creates .forward if there is none. If a .forward exists, it asks whether to remove it, which disables vacation. The BSD pages describe no installer: you edit .forward and run vacation -i yourself.
Source: Solnix vacation(1) DESCRIPTION, Installation; FreeBSD vacation(1) -i; OpenBSD vacation(1) -i; NetBSD vacation(1) -i
FreeBSD, OpenBSD, NetBSDreply interval optionSolnix sets the interval with -tN, default 1 week, with a suffix s, m, h, d or w. FreeBSD and OpenBSD use -r in days. FreeBSD documents -t as ignored, kept only for compatibility with Sun's vacation. NetBSD accepts both -r and -t, with the same suffixes as Solnix and days as the plain unit.
Source: Solnix vacation(1) -tN; FreeBSD vacation(1) -r, -t; OpenBSD vacation(1) -r; NetBSD vacation(1) -r, -t
FreeBSD, OpenBSD, NetBSDwhere options goOn Solnix, -a, -e, -f, -j, -m, -s and -t are meant for the .forward line, not the command line. FreeBSD says -d, -i, -I, -l and -x belong only on the command line. FreeBSD says -r should only be used when the database is initialized.
Source: Solnix vacation(1) OPTIONS; FreeBSD vacation(1) -d, -i, -l, -r, -x
FreeBSD, OpenBSD, NetBSD-I and -i initializationSolnix documents only -I. It clears the sender list, enables vacation, and bare vacation is the installer. FreeBSD and NetBSD accept -i and -I as equivalent. OpenBSD documents only -i. The Solnix synopsis has no -i.
Source: Solnix vacation(1) SYNOPSIS, -I; FreeBSD vacation(1) -i, -I; NetBSD vacation(1) -i, -I; OpenBSD vacation(1) -i
FreeBSD, NetBSD-d meaningSolnix vacation has no -d. On FreeBSD, -d sends errors and debug messages to stderr instead of syslog. On NetBSD, -d turns on debugging and prints the reply on stdout without sending it.
Source: Solnix vacation(1) SYNOPSIS; FreeBSD vacation(1) -d; NetBSD vacation(1) -d
FreeBSD, OpenBSD, NetBSD-l listingSolnix and FreeBSD have -l to list replied-to addresses with a time. Solnix lists replies since the last vacation -I. The OpenBSD and NetBSD pages document no -l.
Source: Solnix vacation(1) -l; FreeBSD vacation(1) -l; OpenBSD vacation(1) SYNOPSIS; NetBSD vacation(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSDdatabase filesSolnix creates .vacation.pag and .vacation.dir. OpenBSD and NetBSD name .vacation.db. FreeBSD names .vacation.db or .vacation.{dir,pag}. -f means a base name on Solnix, a path relative to ~ on FreeBSD unless it starts with /, and a prefix with .db appended on NetBSD. OpenBSD has no -f.
Source: Solnix vacation(1) Installation, -f; FreeBSD vacation(1) -f; OpenBSD vacation(1) DESCRIPTION; NetBSD vacation(1) -f
FreeBSD, OpenBSD, NetBSD-j, -s, -m supportSolnix, FreeBSD and NetBSD document -j (skip the To:/Cc: check) and -s (reply address). OpenBSD has neither. Solnix -m takes a path relative to ~ and says it should be on the same partition as ~/.forward. FreeBSD allows an absolute path.
Source: Solnix vacation(1) -j, -s, -m; FreeBSD vacation(1) -j, -s, -m; NetBSD vacation(1) -j, -s; OpenBSD vacation(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSDsender filteringSolnix reads an optional .vacation.filter (or -e file) of domains and addresses, some negated with !. The first match decides, and no match means no reply. FreeBSD instead has -x, which reads an exclusion list from stdin. OpenBSD and NetBSD document neither.
Source: Solnix vacation(1) -e, USAGE; FreeBSD vacation(1) -x; OpenBSD vacation(1) SYNOPSIS; NetBSD vacation(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSDsuppression rulesSolnix documents no reply for To:/Cc: not matching, -REQUEST@ senders, Precedence bulk or junk, postmaster and Mailer-Daemon. FreeBSD, OpenBSD and NetBSD also skip Precedence: list and Auto-Submitted other than no. FreeBSD and OpenBSD also skip List-Id. The Solnix page does not say it checks these.
Source: Solnix vacation(1) USAGE; FreeBSD vacation(1) DESCRIPTION; OpenBSD vacation(1) DESCRIPTION; NetBSD vacation(1) DESCRIPTION
FreeBSD, NetBSDextra options not on SolnixFreeBSD adds -C (sendmail.cf path), -R (envelope sender), -U (no password-file lookup) and -z (null sender). NetBSD adds -F (extra From-source headers) and -T (extra To-source headers, flagged in BUGS for non-compliant MTAs). Solnix has none of these.
Source: FreeBSD vacation(1) -C, -R, -U, -z; NetBSD vacation(1) -F, -T, BUGS; Solnix vacation(1) SYNOPSIS
FreeBSD, OpenBSD, NetBSDerror loggingThe BSD pages say fatal errors, such as bad arguments or unknown logins, go to syslog. The Solnix page does not say where errors go.
Source: FreeBSD vacation(1) -d; OpenBSD vacation(1) DESCRIPTION; NetBSD vacation(1) DESCRIPTION; Solnix vacation(1)

Standards

Writing portable scripts

  • Do not script the reply interval: -tN on Solnix, -r days on FreeBSD and OpenBSD, and -r or -t on NetBSD. FreeBSD ignores -t.
  • In .forward, keep to -a alias and the login name. Initialize the database per system: bare vacation or -I on Solnix, -i on the BSDs.

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.