Service Management Facility

Service Management Facility (SMF) 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.[1] 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.[2]

  1. ^ Jonathan Adams, David Bustos, Stephen Hahn, David Powell, and Liane Praza, "Solaris Service Management Facility: Modern System Startup and Administration", in Proceedings of LISA '05: Nineteenth Systems Administration Conference, (San Diego, CA: USENIX Association, December 2005), 226-235.
  2. ^ Nicholas A. Solter, Jerry Jelinek, David Miner - 2011 OpenSolaris Bible p 490 1118080319 "A restarter is a process or, more properly, a service, that is responsible for monitoring and restarting other services. UNIX has actually had a form of a restarter since the very beginning, and it exists on all versions of UNIX-derived systems:"