Service Management Facility


Service Management Facility is a feature of the Solaris operating system as of version 10 and Opensolaris-descendant illumos with its illumos distributions, that creates a supported, unified model for services and service management on each Solaris or illumos system and replaces init.d scripts. SMF introduces:
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 for dynamic IP address assignment, and Secure Shell 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, relationship & dependencies, 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 scripts. 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.