svc.startd(8) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

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)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3