Service Management Facility
Encyclopedia
Service Management Facility (SMF) is a feature of the Solaris operating system that creates a supported, unified model for services and service management
Operating system service management
In computing, mechanisms and techniques for managing services often differ by operating system. Operating system service management can refer to the following:...

 on each Solaris system and replaces init.d scripts. SMF introduces:
  • Dependency order. Services sometimes depend on one another for proper operation, and a robust system should know each service's dependencies. If an underlying service fails, it needs to be corrected before other services that depend upon it are affected.
  • Configurable boot verbosity
  • Delegation of tasks to non-root users. A service can be configured to run within a limited set of privileges, rather than as the all-powerful root user. If a service has been compromised, the amount of damage that can be inflicted by the intruder will be minimized if the service's power is constrained to that of a more limited user.
  • Parallel starting of services. This speeds up the boot process by starting multiple services simultaneously, allowing idle CPU time resulting from a service that is temporarily blocked to be relinquished for use by other services that can start independently of the blocked service.
  • Automatic service restart after failure. Works in conjunction with the Solaris Fault Manager, allowing software recovery in the event of hardware faults (cpu, memory), admin error such as accidental kills, and software core dumps.


All these capabilities are made possible by treating Services as "first class objects". That is, they are more than just user-executed software to the OS. They can be defined to have special states that allow finer control and permit monitoring and probing for diagnosing software failures, rather than having the administrator or dedicated "restarter" modules kill and restart the service as before.

What are services?

Services are software objects that provide a set of capabilities to other software. For example, a webserver provides HTTP service to web browsers. Other services include NFS for sharing files on a network, DHCP
Dynamic Host Configuration Protocol
The Dynamic Host Configuration Protocol is a network configuration protocol for hosts on Internet Protocol networks. Computers that are connected to IP networks must be configured before they can communicate with other hosts. The most essential information needed is an IP address, and a default...

 for dynamic IP address
IP address
An Internet Protocol address is a numerical label assigned to each device participating in a computer network that uses the Internet Protocol for communication. An IP address serves two principal functions: host or network interface identification and location addressing...

 assignment, and Secure Shell
Secure Shell
Secure Shell is a network protocol for secure data communication, remote shell services or command execution and other secure network services between two networked computers that it connects via a secure channel over an insecure network: a server and a client...

 for remote logins. Even higher level functions can be services, such as specific databases for e-commerce, finance, manufacturing control, etc. Typically, services are automatically started at boot up, long-lived, have common states (eg. running, not running), relationship & dependencies (Sendmail service depends on Naming service, which depends on Networking services), and are critical to the dedicated function of the server.

What it replaces

In versions of Solaris prior to Solaris 10, and in UNIX in general, services are configured in text files, with startup files in the /etc/rc.d/ directory trees, and configuration data in files such as /etc/inittab and /etc/inetd.conf. A typical system could have dozens of configuration files, and configuration could involve various methods, including editing shell script
Shell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...

s. With SMF, there is one consistent interface to ease administration.

There has been no traditional definition or constraint of what a service is, making administration difficult. With SMF, each service can have a set of defined states, allowing admins to control services in a consistent way based on their state.

SMF concepts

Instances: a service is a collection of configurations. An instance is a running execution of a defined service executable. One can have many instances of a defined service, such as multiple webservers listening on different ports referencing different WWW root directories.

See also

  • init
    Init
    init is a program for Unix-based computer operating systems that spawns all other processes. It runs as a daemon and typically has PID 1. The boot loader starts the kernel and the kernel starts init...

  • Runlevel
    Runlevel
    The term runlevel refers to a mode of operation in one of the computer operating systems that implement Unix System V-style initialization. Conventionally, seven runlevels exist, numbered from zero to six; though up to ten, from zero to nine, may be used. S is sometimes used as a synonym for one...

  • systemd
    Systemd
    systemd is a replacement for the System V init daemon for Linux. It is intended to provide a better framework for expressing services' dependencies, allow more work to be done in parallel at system startup, and to reduce shell overhead....

  • SystemStarter
    SystemStarter
    SystemStarter is a system program in Mac OS X, started by Mac OS X's BSD-style init prior to Mac OS X v10.4 and by launchd in Mac OS X v10.4 and later releases, that starts system processes specified by a set of property lists. SystemStarter was originally written by Wilfredo Sanchez for Mac OS X...

     and launchd
    Launchd
    launchd is a unified, open-source service management framework for starting, stopping and managing daemons, applications, processes, and scripts...

     – Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

    's process spawner
  • Upstart
    Upstart
    Upstart is an event-based replacement for the traditional init daemon — the method by which several Unix-like computer operating systems perform tasks when the computer is started. It was written by Scott James Remnant, a former employee of Canonical Ltd....

  • Initng
    Initng
    Initng is a full replacement of the UNIX System V init, the first process spawned by the kernel in Unix-like computer operating systems, which is responsible for the initialization of every other process...

  • daemontools
    Daemontools
    daemontools is a collection of free tools for managing Unix services. It was written by Daniel J. Bernstein as an improvement to the inittab, ttys, init.d or rc.local alternatives by providingall of the following features....

  • Process Supervision
    Process Supervision
    Process supervision is a form of operating system service management in which some master process remains the parent of the service processes.-Benefits:Benefits include:* Ability to restart services which have failed...

  • runit
    Runit
    runit is an implementation of Process Supervision for Linux....


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK