svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
svc.startd(8)
svc.startd(8) System Administration Commands svc.startd(8)
NAME
svc.startd - Service Management Facility master restarter
SYNOPSIS
/lib/svc/bin/svc.startd
svc:/system/svc/restarter:default
DESCRIPTION
svc.startd is the master restarter daemon for Service Management Facil‐
ity (SMF) and the default restarter for all services. svc.startd
starts, stops, and restarts services based on administrative requests,
system failures, or application failures.
svc.startd maintains service state, as well as being responsible for
managing faults in accordance with the dependencies of each service.
svc.startd is invoked automatically during system startup. It is
restarted if any failures occur. svc.startd should never be invoked di‐
rectly.
See smf_restarter(7) for information on configuration and behavior com‐
mon to all restarters.
svcs(1) reports status for all services managed by the Service Configu‐
ration Facility. svcadm(8) allows manipulation of service instances
with respect to the service's restarter.
Environment Variables
Environment variables with the SMF_ prefix are reserved and may be
overwritten.
svc.startd supplies the SMF_ environment variables specified in
smf_method(7) to the method. PATH is set to /usr/sbin:/usr/bin by de‐
fault. By default, all other environment variables supplied to
svc.startd are those inherited from init(8).
Duplicate entries are reduced to a single entry. The value used is un‐
defined. Environment entries that are not prefixed with name= are ig‐
nored.
Restarter Options
svc.startd is not configured by command line options. Instead, configu‐
ration is read from the service configuration repository. You can use
svccfg(8) to set all options and properties.
The following configuration variables in the options property group are
available to developers and administrators:
boot_messages
An astring, as defined in scf_value_create(3SCF), that describes
the default level of messages to print to the console during boot.
The supported message options include quiet and verbose. The quiet
option prints minimal messages to console during boot. The verbose
option prints a single message per service started to indicate suc‐
cess or failure. You can use the boot -m option to override the
boot_messages setting at boot time. See kernel(8).
logging
Control the level of global service logging for svc.startd. An as‐
tring, as defined in scf_value_create(3SCF), that describes the de‐
fault level of messages to log through syslog(3C) and to
svc.startd's global logfile, /var/svc/log/svc.startd.log. The sup‐
ported message options include quiet, verbose, and debug. The quiet
option sends error messages requiring administrative intervention
to the console, syslog and svc.startd's global logfile. The verbose
option sends error messages requiring administrative intervention
to the console, syslog and svc.startd's global logfile, and infor‐
mation about errors which do not require administrative interven‐
tion to svc.startd's global logfile. A single message per service
started is also sent to the console. The debug option sends
svc.startd debug messages to svc.startd's global logfile, error
messages requiring administrative intervention to the console, sys‐
log and svc.startd's global logfile, and a single message per ser‐
vice started to the console.
milestone
An FMRI which determines the milestone used as the default boot
level. Acceptable options include only the major milestones:
svc:/milestone/single-user:default
svc:/milestone/multi-user:default
svc:/milestone/multi-user-server:default
or the special values all or none. all represents an idealized
milestone that depends on every service. none is a special mile‐
stone where no services are running apart from the master
svc:/system/svc/restarter:default. By default, svc.startd uses all,
a synthetic milestone that depends on every service. If this prop‐
erty is specified, it overrides any initdefault setting in init‐
tab(5).
svcio_args
One or more astrings (as defined in scf_value_is_type; see
scf_value_is_typ(3SCF)) which are appended as arguments to the de‐
fault invocation of svcio(1). If more than one value is specified,
each value will be concatenated and separated by a single space
(' ') character. See the section STENCILS SERVICES below for more
information, including the default invocation of svcio(1).
system/reconfigure
Indicates that a reconfiguration reboot has been requested. Ser‐
vices with actions that must key off of a reconfiguration reboot
may check that this property exists and is set to 1 to confirm a
reconfiguration boot has been requested.
This property is managed by svc.startd and should not be modified
by the administrator.
Configuration errors, such as disabling svc.startd are logged by sys‐
log, but ignored.
SERVICE STATES
Services managed by svc.startd can appear in any of the states de‐
scribed in smf(7). The state definitions are unmodified by this
restarter.
SERVICE REPORTING
In addition to any logging done by the managed service, svc.startd pro‐
vides a common set of service reporting and logging mechanisms.
Reporting properties svc.startd updates a common set of properties on
all services it manages. These properties are a common interface that
can be used to take action based on service instance health. The
svcs(1) command can be used to easily display these properties.
restarter/state
restarter/next_state
The current and next (if currently in transition) state for an in‐
stance.
restarter/auxiliary_state
A caption detailing additional information about the current in‐
stance state. The auxiliary states available for services managed
by svc.startd depend on the current state and are:
maintenance fault_threshold_reached
stop_method_failed
administrative_request
custom
disabled custom
restarter/auxiliary_custom_state
When restarter/auxiliary_custom_state is set to custom, a method-
provided caption detailing additional information about the current
instance state.
restarter/auxiliary_reason
When restarter/auxiliary_custom_state is set to custom, a method-
provided string detailing additional information about the current
instance state.
restarter/auxiliary_textdomain
When restarter/auxiliary_custom_state is set to custom, a method-
provided textdomain in which restarter/auxiliary_reason may be lo‐
calized.
restarter/state_timestamp
The time when the current state was reached.
restarter/contract
The primary process contract ID, if any, that under which the ser‐
vice instance is executing.
Logs
By default, svc.startd provides logging of significant restarter ac‐
tions for the service as well as method standard output and standard
error file descriptors to /var/svc/log/service:instance.log. The level
of logging to system global locations like /var/svc/log/svc.startd.log
and syslog is controlled by the options/logging property.
SERVICE DEFINITION
When developing or configuring a service managed by svc.startd, a com‐
mon set of properties are used to affect the interaction between the
service instance and the restarter.
Methods
The general form of methods for the fork/exec model provided by
svc.startd are presented in smf_method(7). The following methods are
supported as required or optional by services managed by svc.startd.
refresh Reload any appropriate configuration parameters from the
repository or config file, without interrupting service.
This is often implemented using SIGHUP for system daemons.
If the service is unable to recognize configuration changes
without a restart, no refresh method is provided.
This method is optional and is invoked only on running (on‐
line or degraded) service instances.
start Start the service. Return success only after the application
is available to consumers. Fail if a conflicting instance is
already running, or if the service is unable to start.
This method is required.
stop Stop the service. In some cases, the stop method can be in‐
voked when some or all of the service has already been
stopped. Only return an error if the service is not entirely
stopped on method return.
This method is required.
cleanup Cleanup the service. This method is invoked when the service
is transitioned from the maintenance state to the disabled
state. Such a transition only occurs when the administrator
applies svcadm disable to a service in the maintenance
state.
This method is optional, defaults to :true if not defined.
If the service does not need to take any action in a required method,
it must specify the :true token for that method.
svc.startd honors any method context specified for the service or any
specific method. The method expansion tokens described in smf_method(7)
are available for use in all methods invoked by svc.startd.
Properties
An overview of the general properties is available in smf(7). The spe‐
cific way in which these general properties interacts with svc.startd
follows:
general/enabled
If enabled is set to true, the restarter attempts to start the ser‐
vice once all its dependencies are satisfied. If set to false, the
service remains in the disabled state, not running (online or de‐
graded).
general/restarter
If this FMRI property is empty or set to
svc:/system/svc/restarter:default, the service is managed by
svc.startd. Otherwise, the restarter specified is responsible (once
it is available) for managing the service.
general/single_instance
If single_instance is set to true, svc.startd only allows one in‐
stance of this service to transition to online or degraded state at
any time.
Additionally, svc.startd managed services can define the optional prop‐
erties listed below in the startd and logfile_attributes property
group.
startd/duration
The duration property defines the service's model. It can be set to
transient, child also known as wait model services, or contract
(the default).
startd/ignore_error
The ignore_error property, if set, specifies a comma-separated list
of ignored events. Legitimate string values in that list are core
and signal. The default is to restart on all errors.
startd/need_session
The need_session property, if set to true, indicates that the in‐
stance should be launched in its own session. The default is not to
do so.
startd/utmpx_prefix
The utmpx_prefix string property defines that the instance requires
a valid utmpx entry prior to start method execution. The default is
not to create a utmpx entry.
logfile_attributes/permissions
The permissions string property defines the file permissions for
the logfile created by svc.startd(8). The value of permissions
should be in three digit octal format. The default is to use 644
for the logfile permissions.
SERVICE METHOD SPECIAL REQUESTS
A service may use smf_method_exit() to request special consideration
for the state transition in progress. If such requests are made by
means of exit(), without using smf_method_exit(), they will be treated
as described in SERVICE FAILURES below.
When a start or refresh method requests $SMF_EXIT_TEMP_DISABLE,
svc.startd will temporarily disable the service and place it in the
disabled state without running its stop method. If appropriate, the
start or refresh method may explicitly invoke the stop method to grace‐
fully shut down any processes it may have started prior to returning
$SMF_EXIT_TEMP_DISABLE.
When a contract service requests $SMF_EXIT_TEMP_TRANSIENT from a start
or refresh method, svc.startd will complete the state transition cur‐
rently in progress, and will treat the service as if it were transient.
When a stop method requests $SMF_EXIT_TEMP_DISABLE or
$SMF_EXIT_TEMP_TRANSIENT, svc.startd will treat it as if it had re‐
turned $SMF_EXIT_ERR_OK.
When a non-contract service requests $SMF_EXIT_TEMP_TRANSIENT from a
start or refresh method, svc.startd will treat it as if it had returned
$SMF_EXIT_ERR_OK.
SERVICE MODELS
SMF services are one of the following three models:
Transient service The service does some work and then exits
without starting any long running
processes.
Child or wait service The service is restarted whenever its
child process exits cleanly. A child
process that exits cleanly is not treated
as an error.
Contract or daemon service The service starts a long running daemon
or starts several related processes that
are tied together as part of a service
contract. The contract service manages
processes that it starts and any depen‐
dent services and their start order. Only
the high-level service needs to be man‐
aged.
SERVICE FAILURE
Except under the conditions described in SERVICE METHOD SPECIAL RE‐
QUESTS, svc.startd assumes that a method has failed if it returns a
non-zero exit code or it fails to complete before the timeout specified
expires. If $SMF_EXIT_ERR_CONFIG or $SMF_EXIT_ERR_FATAL is returned,
svc.startd immediately places the service in the maintenance state. For
all other failures, svc.startd places the service in the offline state.
If a service is offline and its dependencies are satisfied, svc.startd
tries again to start the service (see smf(7)).
If a contract or transient service does not return from its start
method before its defined timeout elapses, svc.startd sends a SIGKILL
to the method, and returns the service to the offline state.
If the start or stop method fails three times in a row, the service
surpasses the nonconfigurable fault threshold and is put in maintenance
mode with the instance restarter/auxiliary_state property set to
fault_threshold_reached. Once the service has started, if it experi‐
ences a failure that causes it to restart five times within 10 minutes,
svc.startd places the service in maintenance mode.
The conditions of service failure are defined by a combination of the
service model (defined by the startd/duration property) and the value
of the startd/ignore_error property.
A contract model service fails if any of the following conditions oc‐
cur:
o all processes in the service exit
o any processes in the service produce a core dump
o a process outside the service sends a service process a fa‐
tal signal (for example, an administrator terminates a ser‐
vice process with the pkill command)
The last two conditions may be ignored by the service by specifying
core and/or signal in startd/ignore_error.
Defining a service as transient means that svc.startd does not track
processes for that service. Thus, the potential faults described for
contract model services are not considered failures for transient ser‐
vices. A transient service only enters the maintenance state if one of
the method failure conditions occurs.
Wait model services are restarted whenever the child process associated
with the service exits. A child process that exits is not considered an
error for wait model services, and repeated failures do not lead to a
transition to maintenance state.
LEGACY SERVICES
svc.startd continues to provide support for services invoked during the
startup run level transitions. Each /etc/rc?.d directory is processed
after all managed services which constitute the equivalent run level
milestone have transitioned to the online state. Standard init scripts
placed in the /etc/rc?.d directories are run in the order of their se‐
quence numbers.
The milestone to run-level mapping is:
milestone/single-user
Single-user (S)
milestone/multi-user
Multi-user (2)
milestone/multi-user-server
Multi-user with network services (3)
Additionally, svc.startd gives these legacy services visibility in SMF
by inserting an instance per script into the repository. These legacy
instances are visible using standard SMF interfaces such as svcs(1),
always appear in the LEGACY-RUN state, cannot be modified, and can not
be specified as dependencies of other services. The initial start time
of the legacy service is captured as a convenience for the administra‐
tor.
FILES
/var/svc/log Directory where svc.startd stores log files.
/etc/svc/volatile Directory where svc.startd stores log files in
early stages of boot, before /var is mounted read-
write.
EXAMPLES
To turn on verbose logging, type the following:
# /usr/sbin/svccfg -s system/svc/restarter:default
svc:/system/svc/restarter:default> addpg options application
svc:/system/svc/restarter:default> setprop options/logging = \
astring: verbose
svc:/system/svc/restarter:default> exit
This request will take effect on the next restart of svc.startd.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Availabilitysystem/core-os
SEE ALSO
svcio(1), svcprop(1), svcs(1), setsid(2), syslog(3C), libscf(3LIB),
scf_value_create(3SCF), smf_method_exit(3SCF),
smf_restore_instance(3SCF), contract(5), init.d(5), inittab(5),
process(5), attributes(7), smf(7), smf_method(7), init(8), kernel(8),
svc.configd(8), svcadm(8), svccfg(8)
NOTES
When a start or refresh method requests $SMF_EXIT_DEGRADED, svc.startd
will move the service to the degraded state. Once a service has entered
the degraded state in this manner, a subsequent refresh method can
transition it back to the online state by exiting with $SMF_EXIT_OK or
zero (0).
When a stop method requests $SMF_EXIT_DEGRADED, svc.startd will also
move the service to the degraded state. Once a service has entered the
degraded state in this manner, the stop method can be retried by issu‐
ing a restore on the service via the svcadm clear subcommand. For more
information, see svcadm(8) and smf_restore_instance(3SCF) man pages. If
the service is disabled, the stop method can also be retried by dis‐
abling the service again.
Oracle Solaris 11.4 17 Sep 2025 svc.startd(8)