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.
The manual pages
- Solnix: svcprop(1) from
pkgs.solnix.illumos-world-man· illumos.org - Linux: systemctl(1) systemd-260.5 (different command, similar job)
- FreeBSD: sysrc(8) 15.1-RELEASE (different command, similar job)
- OpenBSD: rcctl(8) 8.0 (different command, similar job)
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 with | Topic | What differs |
|---|---|---|
| Linux | what is read | svcprop 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, OpenBSD | where values live | svcprop 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 meaning | On 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 meaning | Solnix 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 meaning | Solnix -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, OpenBSD | output format | With 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, OpenBSD | snapshots and composition | svcprop 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, OpenBSD | waiting for changes | svcprop -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, OpenBSD | exit status | svcprop 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 |
| FreeBSD | zones and jails | svcprop -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, OpenBSD | abbreviated names | svcprop 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
| Task | Solnix | Linux | FreeBSD | OpenBSD |
|---|---|---|---|---|
| show one property of a service | svcprop -p pg/prop FMRI | systemctl show -P property unit | sysrc name | rcctl get daemon variable |
| print values only | svcprop -p pg/prop FMRI (single property, one value per line) | systemctl -P property show unit | sysrc -n name | — |
| dump all properties of a service | svcprop FMRI | systemctl show unit | sysrc -a | rcctl get daemon |
| test quietly whether a property exists | svcprop -q -p pg/prop FMRI (check exit status) | — | sysrc -c name | rcctl get daemon status (exit 0 if enabled) |
Standards
- POSIX: svcprop is not a POSIX.1-2024 utility.
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.