Main index | Section 8 | Options |
The following options are available:
| |
Dump a list of all non-default configuration variables. | |
| |
Dump a list of all configuration variables (incl. defaults). | |
| |
Check only.
For querying, return success if all requested variables are set
(even if NULL),
otherwise return error status.
For assignments, return success if no changes are required, otherwise failure.
If verbose
(see " | |
| |
Print a description of the given variable. | |
| |
Show default value(s) only (this is the same as setting RC_CONFS to NULL or passing `-f' with a NULL file-argument). | |
| |
Print query results as
sh(1)
compatible syntax
(for example,‘var=value’).
Ignored if either
‘ | |
| |
When given
' | |
| |
Operate on the specified file(s) instead of the files obtained by reading the 'rc_conf_files' entry in the RC_DEFAULTS file. This option can be specified multiple times for additional files. | |
| |
Show only the last rc.conf(5) file each directive is in. | |
| |
Print a short usage message to stderr and exit. | |
| |
Print a full usage statement to stderr and exit. | |
| |
Ignore unknown variables. | |
| |
The
jid
or name of the
jail
to operate within
(overrides ' | |
| |
List configuration files used at startup on stdout and exit. | |
| |
List all configuration files including rc.conf.d entries on stdout and exit.
Can be combined with
' | |
| |
Show only variable values, not their names. | |
| |
Show only variable names, not their values. | |
| |
Quiet.
Disable verbose and hide certain errors.
When combined with
' | |
| |
Operate within the root directory 'dir' rather than '/'. | |
| |
If an
rc.d
script of
name
exists
(
in
"/etc/rc.d"
or
local_startup
directories
),
process its
"rc.conf.d"
entries as potential overrides to
'rc_conf_files'.
See
rc.subr(8)
for additional information on
"rc.conf.d".
Can be combined with
' | |
| |
Verbose. Print the pathname of the specific rc.conf(5) file where the directive was found. | |
| |
Print version information to stdout and exit. | |
| |
Remove variable(s) from specified file(s). | |
This utility has a similar syntax to sysctl(8). It shares the `-e' and `-n' options (detailed above) and also has the same ‘name[=value]’ syntax for making queries/assignments. In addition (but unlikesysctl(8)), ‘name+=value’ is supported for adding items to values (see APPENDING VALUES) and ‘name-=value’ is supported for removing items from values (see SUBTRACTING VALUES).
However, while sysctl(8) serves to query/modify MIBs in the entrant kernel, sysrc instead works on values in the system rc.conf(5) configuration files.
The list of system configuration files is configured in the file ‘/etc/defaults/rc.conf’ within the variable ‘rc_conf_files’, which by-default contains a space-separated list of pathnames. On all FreeBSD systems, this defaults to the value "/etc/rc.conf /etc/rc.conf.local". Each pathname is sourced in-order upon startup. It is in the same fashion that sysrc sources the configuration files before returning the value of the given variable.
When supplied a variable name, sysrc will return the value of the variable. If the variable does not appear in any of the configured ‘rc_conf_files’, an error is printed and error status is returned.
When changing values of a given variable, it does not matter if the variable appears in any of the ‘rc_conf_files’ or not. If the variable does not appear in any of the files, it is appended to the end of the first pathname in the ‘rc_conf_files’ variable. Otherwise, sysrc will replace only the last-occurrence in the last-file found to contain the variable. This gets the value to take effect next boot without heavily modifying these integral files (yet taking care not to allow the file to grow unwieldy should sysrc be called repeatedly).
sysrc cloned_interfaces+=" gif0" | |
the first character is a space, informing sysrc that existing values are to be considered separated by whitespace. If ‘gif0’ is not found in the existing value for cloned_interfaces, it is added (with delimiter only if existing value is non-NULL).
For convenience, if the first character is alpha-numeric (letters A-Z, a-z, or numbers 0-9), dot (.), or slash (/), sysrc uses the default setting of whitespace as separator. For example, the above and below statements are equivalent since "gif0" starts with an alpha-numeric character (the letterg):
sysrc cloned_interfaces+=gif0 | |
Take the following sequence for example:
sysrc cloned_interfaces= # start with NULL | |
sysrc
cloned_interfaces+=gif0
# NULL -> `gif0' (NB: no preceding delimiter)
| |
sysrc cloned_interfaces+=gif0 # no change | |
sysrc
cloned_interfaces+="tun0 gif0"
# `gif0' -> `gif0 tun0' (NB: no duplication)
| |
sysrc prevents the same value from being added if already there.
cloned_interfaces-="
the first character is a space, informing sysrc that existing values are to be considered separated by whitespace. If ‘gif0’ is found in the existing value for cloned_interfaces, it is removed (extra delimiters removed).
For convenience, if the first character is alpha-numeric (letters A-Z, a-z, or numbers 0-9), dot (.), or slash (/), sysrc uses the default setting of whitespace as separator. For example, the above and below statements are equivalent since "gif0" starts with an alpha-numeric character (the letterg):
sysrc cloned_interfaces-=gif0 | |
Take the following sequence for example:
sysrc foo="bar baz" # start | |
sysrc foo-=bar # `bar baz' -> `baz' | |
sysrc foo-=baz # `baz' -> NULL | |
sysrc removes all occurrences of all items provided and collapses extra delimiters between items.
RC_CONFS | Override default ‘rc_conf_files’ (even if set to NULL). |
RC_DEFAULTS | |
Location of ‘/etc/defaults/rc.conf’ file. | |
awk(1), cat(1), chmod(1), env(1), grep(1), mktemp(1), mv(1), rm(1), sh(1), stat(1), tail(1), chown(8), chroot(8), jls(8), and jexec(8).
/etc/defaults/rc.conf
/etc/rc.conf /etc/rc.conf.local /etc/rc.conf.d/name /etc/rc.conf.d/name/* /usr/local/etc/rc.conf.d/name /usr/local/etc/rc.conf.d/name/* | |
sysrc sshd_enable
returns the value of $sshd_enable, usually YES or NO.
sysrc defaultrouter
returns IP address of default router (if configured).
Working on other files, such as crontab(5):
sysrc -f /etc/crontab MAILTO
returns the value of the MAILTO setting (if configured).
Appending to existing values:
sysrc amp;cloned_interfaces+=gif0
appends "gif0 "to $cloned_interfaces (see APPENDING VALUES).
sysrc amp;cloned_interfaces-=gif0
removes "gif0 "from $cloned_interfaces (see SUBTRACTING VALUES).
In addition to the above syntax, sysrc also supports inline sh(1) PARAMETER expansion for changing the way values are reported, shown below:
sysrc amp;'hostname%%.*'
returns $hostname up to (but not including) first `.'.
sysrc amp;'network_interfaces%%[$IFS]*'
returns first word of $network_interfaces.
sysrc amp;'ntpdate_flags##*[$IFS]'
returns last word of $ntpdate_flags (time server address).
sysrc usbd_flags-"default"
returns $usbd_flags or default if unset or NULL.
sysrc cloned_interfaces+"alternate"
returns alternate if $cloned_interfaces is set.
SYSRC (8) | April 3, 2022 |
Main index | Section 8 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
“ | It's a UNIX system, I know this! | ” |
— Lex Murphy, Jurassic Park |