SVCCFG(8) Maintenance Commands and Procedures SVCCFG(8)
NAME
svccfg - import, export, and modify service configurations
SYNOPSIS
svccfg [
-v] [
-z zone] [
-s FMRI]
svccfg [
-v] [
-z zone] [
-s FMRI]
subcommand [
args...]
svccfg [
-v] [
-z zone] [
-s FMRI]
-f command-fileDESCRIPTION
The
svccfg command manipulates data in the service configuration
repository.
svccfg can be invoked interactively, with an individual
subcommand, or by specifying a command file that contains a series of
subcommands.
Changes made to an existing service in the repository typically do not take
effect for that service until the next time the service instance is
refreshed. See the
refresh subcommand on the
svcadm(8) man page for more
details.
OPTIONS
The following options are supported:
-f file Reads and executes
svccfg subcommands from
file.
-s FMRI Selects the entity indicated by
FMRI (a fault management
resource identifier) before executing any subcommands. See
smf(7).
-v Produce more verbose output.
-z zone Manage services in the specified zone. This option is only
applicable from the global zone, see
zones(7).
SUBCOMMANDS
Subcommands are divided into the categories specified in the subsections
that follow.
All subcommands that accept
FMRIs also accept abbreviated or globbed
patterns. Instances and services can be abbreviated by specifying the
instance name, or the trailing portion of the service name. For example,
given the
FMRI:
svc:/network/smtp:sendmail
All the following are valid abbreviations:
sendmail :sendmail smtp smtp:sendmail network/smtp
While the following are invalid:
mail network network/smt
Abbreviated forms of
FMRIs are unstable, and should not be used in scripts
or other permanent tools. If a pattern matches more than one instance or
service, an error message is printed and no action is taken.
General Subcommands
end,
exit,
quit Exits immediately.
repository repfile Uses
repfile as a repository. By default,
svccfg uses the
system repository.
Use repository only with files from the identical version of
illumos, including updates, that you are currently running.
Do not use this subcommand with the system repository,
/etc/svc/repository.db.
set [
-v |
-V]
Sets optional behavior. If no options are specified, set
displays the options currently in effect.
-v Turns on verbose mode.
-V Turns off verbose mode.
Service Profile Subcommands
apply [
-n]
file If
file is a service profile, properties, including
general/enabled, that are specified in the file are modified
in the SMF repository. Not-yet-existent properties and
property groups will be created. The type of the pre-
existing property groups will not be changed by the profile.
Existing properties (as distinguished from property groups)
can have their type changed by the profile. Nonexistent
services and instances are ignored. Services and instances
modified by the profile will be refreshed. If
-n is
specified, the profile is processed and no changes are
applied to the SMF repository. Any syntax error found will
be reported on stderr and an exit code of
1 will be returned.
See
smf(7) for a description of service profiles. This
command requires privileges to modify properties in the
service and instance. See
smf_security(7) for the privileges
required to modify properties. If
file is not a service
profile, the subcommand fails.
extract [>
file]
Prints a service profile which represents the enabled status
of the service instances in the repository to standard
output. The output may be redirected to a file.
Service Manifest Subcommands
archive [
-a] Dumps a full XML service description for all services,
instances, and their persistent properties in the repository.
This does not include transient properties such as service
state, and is suitable for a relocatable repository backup.
Without the
-a option, property groups containing protected
information (identified by the presence of the
read_authorization property -- see
smf_security(7)) will be
archived without their property values. When the
-a option
is specified, all values will be archived. An error results
if there are insufficient privileges to read these values.
export [
-a]
service_FMRI [>
file]
The service description for the specified service and its
instances is written to standard output or redirected to the
given file. Dependencies with a boolean "external" property
set to true are omitted in the belief that they were created
on behalf of another service.
Without the
-a option, property groups containing protected
information (identified by the presence of the
read_authorization property -- see
smf_security(7)) will be
exported without their property values. When the
-a option
is specified, all values will be archived. An error results
if there are insufficient privileges to read these values.
Note that
export requires a service FMRI. To ease the use of
arguments cut and pasted from other command output, if you
specify a complete instance FMRI, the entire corresponding
service including all instances is exported and a warning is
issued. If you specify an abbreviation, such as `apache2' or
`sendmail', that specifies an instance, the command fails.
import [
-V]
file If
file is a service manifest, then the services and
instances it specifies are imported into the repository.
According to the file, dependencies may be created in other
services. See
smf(7) for a description of service manifests.
See
smf_security(7) for the privileges required to create and
modify service configurations.
Services and instances in the manifest will be validated
against template data in the manifest and the repository, and
warnings will be issued for all template violations. See
smf_template(7) for a description of templates. If the
-V option is specified, manifests that violate the defined
templates will fail to import. In interactive invocations of
svccfg,
-V is the default behavior.
For existing services and instances, properties which have
not changed since the last import snapshot was taken are
upgraded to those specified by the manifest. Conflicts
(properties which have been changed both in the repository
and the manifest) are reported on the standard error stream.
svccfg will never upgrade the "general/enabled" and
"general/restarter" properties, since they represent
administrator preference.
inventory file If
file is determined to be a service manifest, then the
FMRIs of the services and instances the
file describes are
printed. For each service, the FMRIs of its instances are
displayed before the FMRI of the service.
restore Restores the contents of the repository from a full XML
service description previously created by the
archive subcommand. If the archive was generated without the use of
the
-a option, the contents of the repository following
completion of the restore will not include the values of any
read-protected properties (see
smf_security(7)). If these
are required, they must be restored manually.
Restoring an archive which is inconsistent with currently
installed software (including patch revisions) might yield
unpredictable results. Therefore, prior to restoring an
archive, all system and application software, including any
service manifests, should be restored to the same state it
was in at the time the archive was made.
validate [
file |
fmri]
The
validate subcommand can operate on a manifest file, an
instance FMRI, or the current instance or snapshot entity
selection. When an argument is specified,
svccfg will check
to see whether the specified file exists. If the file
exists, it will be validated. If a file of the specified
name does not exist, the argument is treated as an FMRI
pattern. If a conflict arises between a filename and an
FMRI, use the svc: and file: prefixes to tell
svccfg how to
interpret the argument.
When you specify a file, the file is processed in a manner
similar to
import -V, but no changes are made to the
repository. If any errors are detected,
svccfg displays the
errors and exits with a nonzero exit status.
For an instance
fmri, instance entity selection, or snapshot
entity selection, the specified instance in its composed form
(see "Properties and Property Groups" in
smf(7)) will be
validated against template data in the repository. Instance
FMRIs and instance entity selections use the "running"
snapshot for validation. Warnings will be issued for all
template violations. See
smf_template(7) for a description
of templates.
Entity Selection, Modification, and Navigation Subcommands An "entity" refers to a scope, service, or service instance.
add name A new entity with the given name is created as a child of the
current selection. See
smf_security(7) for the privileges
required to create entities.
delete [
-f] {
name |
fmri}
The named child of the current selection or the entity
specified by
fmri is deleted. Attempts to delete service
instances in the "online" or "degraded" state will fail
unless the
-f flag is specified. If a service or service
instance has a "dependents" property group of type Dq
framework , then for each of its properties with type
"astring" or "fmri", if the property has a single value which
names a service or service instance then the dependency
property group in the indicated service or service instance
with the same name as the property will be deleted. See
smf_security(7) for the privileges required to delete service
configurations.
list [
pattern]
The child entities of the current selection whose names match
the glob pattern
pattern are displayed (see
fnmatch(7)).
":properties" is also listed for property-bearing entities,
namely services and service instances.
select {
name |
fmri}
If the argument names a child of the current selection, it
becomes the current selection. Otherwise, the argument is
interpreted as an FMRI and the entity that the argument
specifies becomes the current selection.
unselect The parent of the current selection becomes the current
selection.
Property Inspection and Modification Subcommands
addpg name type [
flags]
Adds a property group with the given
name and type to the
current selection.
flags is a string of characters which
designates the flags with which to create the property group.
`P' represents SCF_PG_FLAG_NONPERSISTENT (see
scf_service_add_pg(3SCF)). See
smf_security(7) for the
privileges required to create property groups.
addpropvalue pg/name [
type:]
value Adds the given value to a property. If
type is given and the
property exists, then if
type does not agree with the
property's
type, the subcommand fails. The values may be
enclosed in double-quotes. String values containing double-
quotes or backslashes must be enclosed by double-quotes and
the contained double-quotes and backslashes must be quoted by
backslashes. Nonexistent properties are created, in which
case the
type specifier must be present. See
scf_value_create(3SCF) for a list of available property
types. See
smf_security(7) for the privileges required to
modify properties. The new value will be appended to the end
of the list of property values associated with the property.
delpg name Deletes the property group
name of the current selection.
See
smf_security(7) for the privileges required to delete
property groups.
delprop pg[/
name]
Deletes the named property group or property of the current
selection. See
smf_security(7) for the privileges required
to delete properties.
delpropvalue pg/name globpattern Deletes all values matching the given
glob pattern in the
named property. Succeeds even if no values match. See
smf_security(7) for the privileges required to modify
properties.
describe [
-v] [
-t] [
propertygroup/
property]
Describes either the current or the possible settings.
When invoked without arguments,
describe gives basic
descriptions (if available) of the currently selected entity
and all of its currently set property groups and properties.
A property group or specific property can be queried by
specifying either the property group name, or the property
group name and property name, separated by a slash (`/'), as
an argument.
The
-v option gives all information available, including
descriptions for current settings, constraints, and other
possible setting choices.
The
-t option shows only the template data for the selection
(see
smf_template(7)), and does not display the current
settings for property groups and properties.
editprop Commented commands to reproduce the property groups and
properties of the current selection are placed in a temporary
file and the program named by the EDITOR environment variable
is invoked to edit it. Upon completion, the commands in the
temporary file are executed. The default editor is
vi(1).
See
smf_security(7) for the privileges required to create,
modify, or delete properties.
listpg [
pattern]
Displays the names, types, and flags of property groups of
the current selection. If an argument is given, it is taken
as a glob pattern and only property groups with names which
match the argument are listed.
In interactive mode, a basic description of the property
groups is also given.
listprop [
pattern]
Lists property groups and properties of the current
selection. For property groups, names, types, and flags are
listed. For properties, names (prepended by the property
group name and a slash `/'), types, and values are listed.
See
scf_value_create(3SCF) for a list of available property
types. If an argument is supplied it is taken as a glob
pattern and only property groups and properties with names
which match the argument are listed.
setenv [
-i |
-s] [
-m method_name]
envvar value Sets a method environment variable for a service or instance
by changing the "environment" property in the
method_name property group, if that property group has type "method". If
method_name is not specified and the
-i option is used, the
"method_context" property group is used, if an instance is
currently selected. If the
-s option is used and a service
is currently selected, its "method_context" property group is
used. If the
-s option is used and an instance is currently
selected, the "method_context" property group of its parent
is used. If neither the
-i option nor the
-s option is used,
the "start" property group is searched for in the currently
selected entity and, if an instance is currently selected,
its parent is also searched. If the "inetd_start" property
group is not located, it is searched for in a similar manner.
Once the property is located, all values which begin with
envvar followed by a "=" are removed, and the value
"
envvar=
value" is added. See
smf_security(7) for the
privileges required to modify properties.
setprop pg/name = [
type:]
value setprop pg/name = [
type:] (
values ... )
Sets the
name property of the
pg property group of the
current selection to the given values of type
type. See
scf_value_create(3SCF) for a list of available property
types. If the property already exists and the
type disagrees
with the existing
type on the property, the subcommand fails.
Values may be enclosed in double-quotes. String values which
contain double-quotes or backslashes must be enclosed by
double-quotes and the contained double-quotes and backslashes
must be quoted by backslashes. If the named property does
not exist, it is created, as long as the type is specified.
See
smf_security(7) for the privileges required to create or
modify properties. Multiple values will be stored in the
order in which they are specified.
unsetenv [
-i |
-s] [
-m method_name]
envvar value Removes a method environment variable for a service or
instance by changing the "environment" property in the
method_name property group, if that property group has type
"method". If
method_name is not specified and the
-i option
is used, the "method_context" property group is used, if an
instance is currently selected. If the
-s option is used and
a service is currently selected, its "method_context"
property group is used. If the
-s option is used and an
instance is currently selected, the "method_context" property
group of its parent is used. If neither the
-i option nor
the
-s option is used, the "start" property group is searched
for in the currently selected entity and, if an instance is
currently selected, its parent is also searched. If the
"inetd_start" property group is not located, it is searched
for in a similar manner.
Once the property is located, all values which begin with
envvar followed by "=" are removed. See
smf_security(7) for
the privileges required to modify properties.
Snapshot Navigation and Selection Subcommands
listsnap Displays snapshots available for the currently selected
instance.
revert [
snapshot]
Reverts the properties of the currently selected instance and
its service to those recorded in the named snapshot. If no
argument is given, use the currently selected snapshot and
deselect it on success. The changed property values can be
made active via the
refresh subcommand of
svcadm(8). See
smf_security(7) for the privileges required to change
properties.
selectsnap [
name]
Changes the current snapshot to the one named by
name. If no
name is specified, deselect the currently selected snapshot.
Snapshots are read-only.
Instance Subcommands
refresh Commit the values from the current configuration to the
running snapshot, making them available for use by the
currently selected instance. If the repository subcommand
has not been used to select a repository, direct the
instance's restarter to reread the updated configuration.
ENVIRONMENT
EDITOR The command to run when the
editprop subcommand is used. The
default editor is
vi(1).
EXIT STATUS
The following exit values are returned:
0 Successful execution.
1 One or more subcommands resulted in failure. Error messages are
written to the standard error stream.
2 Invalid command line options were specified.
EXAMPLES
Example 1 Importing a Service Description
The following example imports a service description for the
seismic service
in the XML manifest specified on the command line.
# svccfg import /var/svc/manifest/site/seismic.xml
Note that the manifest must follow the format specified in
service_bundle(5).
Example 2 Exporting a Service Description
To export a service description on the local system:
# svccfg export dumpadm >/tmp/dump.xml
Example 3 Deleting a Service Instance
To delete a service instance:
# svccfg delete network/inetd-upgrade:default
Example 4 - Checking Properties in an Alternate Repository To examine the state of a service's properties after loading an alternate
repository, use the sequence of commands shown below. One might use such
commands, for example, to determine whether a service was enabled in a
particular repository backup.
# svccfg
svc:> repository /etc/svc/repository-boot
svc:> select telnet:default
svc:/network/telnet:default> listprop general/enabled
general/enabled boolean false
svc:/network/telnet:default> exit
Example 5 Enabling Debugging
To modify LD_PRELOAD for a start method and enable the use of
libumem(3LIB) with debugging features active:
$ svccfg -s system/service setenv LD_PRELOAD libumem.so
$ svccfg -s system/service setenv UMEM_DEBUG default
Example 6 Using the
describe Subcommand
The following command illustrates the use of the
describe subcommand.
# svccfg -s console-login describe ttymon
ttymon application
ttymon/device astring /dev/console
terminal device to be used for the console login prompt
ttymon/label astring
console appropriate entry from /etc/ttydefs
...
INTERFACE STABILITY
The interactive output of
svccfg is
Not-An-Interface and may change at any
time.
The command line interface and non-interactive output of
svccfg is
Committed.
SEE ALSO
svcprop(1),
svcs(1),
libscf(3LIB),
libumem(3LIB),
scf_service_add_pg(3SCF),
scf_value_create(3SCF),
contract(5),
service_bundle(5),
attributes(7),
fnmatch(7),
smf(7),
smf_method(7),
smf_security(7),
smf_template(7),
zones(7),
svc.configd(8),
svcadm(8)illumos June 1, 2023 illumos