Введение

Функция управления сервисами (SMF) операционной системы Solaris – это компонент операционной системы Solaris, начиная с версии 10, и производных OpenSolaris, таких как illumos и её дистрибутивы, который предоставляет поддерживаемую, унифицированную модель для сервисов и управления ими в каждой системе Solaris или illumos, заменяя скрипты init.d. SMF включает в себя:

Порядок зависимостей. Сервисы часто зависят друг от друга для корректной работы, и надёжная система должна учитывать зависимости каждого сервиса. В случае сбоя базового сервиса его необходимо устранить до того, как это повлияет на другие сервисы, зависящие от него. Настраиваемую подробность вывода при загрузке.

Делегирование задач пользователям, не являющимся root. Сервис может быть настроен для запуска с ограниченным набором привилегий, а не от имени всемогущего пользователя root. Если сервис был скомпрометирован, ущерб, наносимый злоумышленником, будет сведен к минимуму, если его возможности будут ограничены правами менее привилегированного пользователя.

Параллельный запуск сервисов. Это ускоряет процесс загрузки за счёт одновременного запуска нескольких сервисов, позволяя высвободить время процессора, простаивающее из-за временно заблокированного сервиса, для других сервисов, которые могут быть запущены независимо от него.

Автоматический перезапуск сервиса после сбоя. Работает совместно с Solaris Fault Manager, обеспечивая восстановление программного обеспечения при аппаратных сбоях (процессор, память), ошибках администратора, таких как случайное завершение процессов, и сбросах ядра программного обеспечения.

Все эти возможности реализуются благодаря тому, что сервисы рассматриваются как "объекты первого класса". То есть, они – это не просто программное обеспечение, запускаемое пользователем, для операционной системы. Они могут быть определены с особыми состояниями, обеспечивающими более тонкий контроль и позволяющими осуществлять мониторинг и диагностику сбоев программного обеспечения, вместо того чтобы администратор или специализированные модули перезапуска просто завершали и перезапускали сервис, как это было раньше.

Что такое услуги?

Услуги — это программные объекты, предоставляющие набор возможностей другим программам. Например, веб-сервер предоставляет HTTP-сервис веб-браузерам. К другим службам относятся NFS для обмена файлами в сети, DHCP для динамического назначения IP-адресов и Secure Shell для удалённого доступа. Даже более сложные функции могут быть реализованы как службы, например, специализированные базы данных для электронной коммерции, финансов, управления производством и т. д. Как правило, службы автоматически запускаются при загрузке системы, работают длительное время, имеют общие состояния (например, запущен, не запущен), взаимосвязи и зависимости (служба Sendmail зависит от службы имён, которая, в свою очередь, зависит от сетевых служб) и критически важны для выполнения специализированных функций сервера.

Что он заменяет

В версиях Solaris до Solaris 10 и в UNIX в целом, сервисы конфигурируются в текстовых файлах, с файлами запуска в директориях /etc/rc.d/ и конфигурационные данные в файлах, таких как /etc/inittab и /etc/inetd.conf. Типичная система могла содержать десятки файлов конфигурации, а настройка могла включать различные методы, в том числе редактирование скриптов оболочки. С SMF существует единый согласованный интерфейс для упрощения администрирования. Ранее не существовало четкого определения или ограничений для понятия "сервис", что затрудняло администрирование. С SMF каждый сервис может иметь набор определенных состояний, позволяя администраторам контролировать сервисы последовательно, основываясь на их текущем состоянии.

Понятия МСФО

Служба — это набор конфигураций. Экземпляр — это запущенное выполнение определенного исполняемого файла службы. Можно иметь несколько экземпляров одной и той же службы, например, несколько веб-серверов, прослушивающих разные порты и использующих разные корневые каталоги веб-сайтов.