Service Management Facility

  • Uploaded by: Karthik
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Service Management Facility as PDF for free.

More details

  • Words: 1,075
  • Pages: 5
Service Management Facility The Service Management Facility was introduced in Solaris 9 as an alternative way to manage services. In Solaris 10, SMF has been made the default way to manage most services. The SMF framework has significant advantages over the legacy SVR4 mechanisms, primarily in terms of service monitoring and integration with the Fault Management Facility.

Basic Commands The basic commands for managing services under SMF (Service Management Facility) control are svcs, svccfg and svcadm. The man pages for these commands are a good source of detailed information. inetadm

can be used to monitor services under inetd control.

Many commands require referencing the service identifier, also known as an FMRI.

svcs -a: Lists all services currently installed, including their state. -d FMRI: Lists dependencies for FMRI. -D FMRI: Lists dependents for FMRI. -l FMRI: Provides a long listing of information about FMRI;

• • • •

svcs svcs svcs svcs

• • • •

information svcs -p FMRI: Shows relationships between services and processes. svcs -t: This change is temporary (does not persist past a boot). svcs -x: Explains why a service is not available. svcs -xv: Verbose debugging information.

includes dependency

svcadm • • • • •

svcadm svcadm svcadm svcadm svcadm

clear FMRI: Clear faults for FMRI. disable FMRI: Disable FMRI. enable FMRI: Enable FMRI. refresh FMRI: Force FMRI to read config restart FMRI: Restart FMRI.

file.

To make configuration changes to a non-inetd service, edit the configuration file, then enter the svcadm restart command.

svccfg • •

svccfg: Enter interactive mode. svccfg -s FMRI setenv ENV_VARIABLE

value: Set an environment variable for FMRI. Follow by svcadm refresh and restart commands.

inetadm • •

inetadm -l inetadm -m

FMRI: Displays properties for FMRI. FMRI property_name=value: Set a property for FMRI.

In particular, the "exec" value for an inetd-controlled service is the command line executed for that service by SMF. It may be desirable, for example, to change this value to add logging or other command-line flags. To convert an inetd.conf file to SMF format, run the command: inetconv -i /etc/inet/inetd.conf

Service Identifiers Services are identified by their FMRI. (This stands for Fault Managed Resource Identifier.) An example is: svc:/system/system-log:default

Some commands do not require the full FMRI if there is no ambiguity. Legacy init scripts have FMRIs starting with lrc. For example: lrc:/etc/rcS_d/S35cacheos_sh

Converted inetd services have a syntax like one of the following, depending on whether or not they are rpc services: svc:network/service-name/protocol svc:network/rpc-service-name/rpc_protocol

SMF Service Starts The svc.startd daemon is the master process starter and restarter for SMF. It tracks service state and manages dependencies. Services that are managed through init scripts can be added to SMF via the inetconv command. Such additions are only monitored for status, but other SMF facilities may not work.

Maintenance If a service is in the maintenance state, first make sure that all associated processes have died: svcs -p FMRI Next, (for all processes displayed by the above): pkill -9 PID Consult the appropriate logs in /var/svc/log to check any errors; perform any needed maintenance. Restore the service: svcadm clear FMRI

Scripts

The scripts that implement the startups and shutdowns are located in their usual place in /etc/init.d for the lrc services, or in /lib/svc/method for most of the other services. Other locations may be specified for a particular service. To track down the script locations for a particular service, do something like the following: # svccfg -s smtp svc:/network/smtp> list :properties sendmail svc:/network/smtp> select sendmail svc:/network/smtp:sendmail> list :properties svc:/network/smtp:sendmail> listprop *exec start/exec astring "/lib/svc/method/smtp-sendmail start" stop/exec astring "/lib/svc/method/smtp-sendmail stop %{restarter/contract}" refresh/exec astring "/lib/svc/method/smtp-sendmail refresh"

Boot Messages Boot messages are much less verbose than previously. To get verbose output, boot with the boot -v

or

boot -m verbose

commands. can be used to change the run levels. The FMRIs associated with the different run levels

svcadm

are: S: milestone/single-user:default 2: milestone/multi-user:default 3: milestone/multi-user-server:default

• • •

Run levels can be displayed with who -r

SMF Profiles SMF profiles are XML files in /var/svc/profile which list sets of service instances which are enabled and disabled. Different SMF profiles can be used. They are stored in /var/svc/profile. To use a different one, perform the following procedure: svccfg apply /var/svc/profile/desired_profile.xml The local profile /var/svc/profile/site.xml allows local customizations. This profile is applied after the standard profiles.

To make a copy of the current profile for editing, run: svccfg extract> profile-file.xml

Service Configuration Repository Stores persistent configuration information and SMF runtime data for services. Each service's manifest is in an XML-formatted text file located in /var/svc/manifest. The information from the manifests is imported into the repository through svccfg import or during a reboot. This is covered in the svccfg, svcprodp, service_bundle and svc.configd man pages. If the repository is corrupted, it can be restored from an automatic backup using the /lib/svc/bin/restore_repository command. The svcadm refresh; svc adm restart command will make a snapshot active. Automatic snapshots are taken for initial (import of the manifest), running (when service methods are executed) and start (last successful start).

Revert to a Snapshot The procedure to revert to a snapshot is the following: Run svccfg in interactive mode: svccfg In the svc:> prompt, select FMRI

select the desired service with a full FMRI:

List the available snapshots: listsnap

Revert to the desired snapshot: revert desired_snapshot_label Quit out of the svccfg interactive mode: quit

Update the service configuration repository information: svcadm refresh FMRI svcadm restart FMRI

Boot Troubleshooting To step through the SMF portion of the boot process, start with: boot -m milestone=none

Then step through the milestones for the different boot levels:

svcadm milestone svc:/milestone/single-user:default svcadm milestone svc:/milestone/multi-user:default svcadm milestone svc:/milestone/multi-user-server:default

Several things should be examined if a service fails to start: •

Is the service in maintenance mode? (svcs -l FMRI)

• • • •

If so, why? Check the log file specified in the svcs -l FMRI | grep logfile output, and run svcs -xv FMRI If the problem has been resolved, clear the fault with svcadm clear FMRI Check for service dependencies with svcs -d FMRI The output from svcs -l distinguishes between optional and mandatory dependencies. Check the startup properties with svcprop -p start FMRI The startup for the process can be trussed to get some visibility into where it is failing by inserting a truss into the start or exec statement for the service. To do this, just add truss -f -a -o /path/service-truss.out to the beginning of the start or exec statement with an svccfg -s statement.

Related Documents


More Documents from "Yogesh Kende"

Report -2003
June 2020 5
Ergo October 29
November 2019 24
Ergo July 27
May 2020 7
Ergo January 19
December 2019 22
Ergo August 20
October 2019 25
Ergo December 18
December 2019 28