svcprop(1) on Solnix vs Linux and the BSDs

svcprop is the illumos command at /usr/bin/svcprop that prints property values from the SMF service configuration repository. The counterparts are not like-for-like: systemctl show, sysrc and rcctl get read unit properties or rc.conf variables, not a configuration repository.

What Solnix runs

A default Solnix system runs the illumos svcprop at /usr/bin/svcprop. No other variants are shipped. It only reads properties. The bundle does not describe the tools that change them (see svccfg(8) and svcadm(8) in SEE ALSO).

Differences

Compared withTopicWhat differs
Linuxwhat is readsvcprop reads properties of services and instances in the SMF configuration repository, selected by FMRI or glob pattern. systemctl show reads properties of systemd units, jobs or the manager, selected by unit name.
Source: Solnix svcprop(1) DESCRIPTION, OPERANDS; Linux systemctl(1) -p, --property
FreeBSD, OpenBSDwhere values livesvcprop reads a repository addressed by FMRI. sysrc reads rc.conf(5) variables from files listed in rc_conf_files (default /etc/rc.conf /etc/rc.conf.local). OpenBSD rcctl get shows daemon variables for rc.conf.local(8).
Source: Solnix svcprop(1) DESCRIPTION; FreeBSD sysrc(8) DESCRIPTION; OpenBSD rcctl(8) get, DESCRIPTION
Linux-p meaningOn Solnix -p takes a property group name or pg/prop and can be repeated. On Linux systemctl, -p takes a comma-separated list of property names such as MainPID, and applies to the show command.
Source: Solnix svcprop(1) -p name, -p pg/prop; Linux systemctl(1) -p, --property
Linux-t meaningSolnix svcprop -t selects the multi-property output format. systemctl -t (--type) takes a list of unit types such as service or socket, so a copied -t changes meaning.
Source: Solnix svcprop(1) -t; Linux systemctl(1) -t, --type
FreeBSD, OpenBSD-q, -v and -f meaningSolnix -q produces no output and -v prints errors for nonexistent properties even with -q. FreeBSD sysrc -q hides verbose output and some errors, and -v prints the file where a directive was found. -f selects full FMRIs on Solnix but names files on sysrc. OpenBSD rcctl -f forces an action.
Source: Solnix svcprop(1) -q, -v, -f; FreeBSD sysrc(8) -q, -v, -f; OpenBSD rcctl(8) SYNOPSIS (-f)
Linux, FreeBSD, OpenBSDoutput formatWith several properties, svcprop prints one line each: a designator (group/property, or the canonical FMRI with several FMRI operands), a type, then the values. Empty strings print as "" and shell metacharacters are backslash-quoted. systemctl -P prints bare values. sysrc -n prints values only and -e prints var=value.
Source: Solnix svcprop(1) Output Format; Linux systemctl(1) -P, --value; FreeBSD sysrc(8) -n, -e
Linux, FreeBSD, OpenBSDsnapshots and compositionsvcprop reads effective properties by default (the running snapshot, plus nonpersistent groups for instances). -C reads directly attached properties, -c the composed view, -s snapshot a named snapshot. The other pages describe no snapshot or composition option.
Source: Solnix svcprop(1) DESCRIPTION, -C, -c, -s; Linux systemctl(1) OPTIONS; FreeBSD sysrc(8); OpenBSD rcctl(8)
Linux, FreeBSD, OpenBSDwaiting for changessvcprop -w waits until the property group changes before printing. It accepts only one entity, and implies -C. The bundle shows no equivalent option in systemctl, sysrc or rcctl.
Source: Solnix svcprop(1) -w; Linux systemctl(1) OPTIONS; FreeBSD sysrc(8); OpenBSD rcctl(8)
Linux, FreeBSD, OpenBSDexit statussvcprop exits 0 on success, 1 on error, 2 for invalid options. OpenBSD rcctl get status exits 0 if enabled and 1 if not, and 2 means a nonexistent daemon. FreeBSD sysrc returns error status when a variable is not set in any file.
Source: Solnix svcprop(1) EXIT STATUS; OpenBSD rcctl(8) EXIT STATUS; FreeBSD sysrc(8) DESCRIPTION
FreeBSDzones and jailssvcprop -z zone reads properties from a service in that zone, and works only from the global zone. FreeBSD sysrc -j jail operates within a jail, and -R dir within a root directory.
Source: Solnix svcprop(1) -z; FreeBSD sysrc(8) -j, -R
Linux, FreeBSD, OpenBSDabbreviated namessvcprop accepts abbreviated FMRIs such as smtp or network/smtp. The page says they are unstable and should not be used in scripts. Use full FMRIs there. Properties and property groups need a full FMRI.
Source: Solnix svcprop(1) OPERANDS (FMRI)

Everyday tasks

TaskSolnixLinuxFreeBSDOpenBSD
show one property of a servicesvcprop -p pg/prop FMRIsystemctl show -P property unitsysrc namercctl get daemon variable
print values onlysvcprop -p pg/prop FMRI (single property, one value per line)systemctl -P property show unitsysrc -n name—
dump all properties of a servicesvcprop FMRIsystemctl show unitsysrc -arcctl get daemon
test quietly whether a property existssvcprop -q -p pg/prop FMRI (check exit status)—sysrc -c namercctl get daemon status (exit 0 if enabled)

Standards

Writing portable scripts

  • Do not expect one tool for this on all four systems. Branch on what is present (svcprop, systemctl, sysrc, rcctl), because the data live in the SMF repository, systemd units or rc.conf files.
  • On Solnix use full FMRIs, not abbreviations, and test the exit status (0, 1, 2) rather than parsing output.

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.