Solaris OpenIndiana сервисы

Сервис в Solaris/OpenIndiana – это объект, который может предоставлять ресурсы, может отражать программное состояние устройства или смонтированной файловой системы. В системе может быть запущено несколько экземпляров сервиса. Каждый сервис имеет идентификатор FMRI ( Fault Management Resource Identifier ) идентификатор обслуживания сбоев ресурсов. FMRI указывает категорию сервиса
Категории сервисов:
application
device
legacy
milestone
network
platform
site
system

Пример сервиса: svc:/system/filesystem/usr:default
svc – означает что данный сервис обслуживается SMF
категория данного сервиса system.

Cервис filesystem экземпляром которого является файловая система /usr

Параметр default указывает на первый, единственный экземпляр данного сервиса
С помощью команды svcs можно посмотреть информацию о сервисах в системе.
Например:
svcs | grep filesystem
online         17:09:14 svc:/system/filesystem/root:default
online         17:09:19 svc:/system/filesystem/usr:default
online         17:09:21 svc:/system/filesystem/minimal:default
online         17:09:27 svc:/system/filesystem/local:default
online         17:09:32 svc:/system/filesystem/volfs:default
online         17:09:32 svc:/system/filesystem/autofs:default

Состояния работы сервиса:
online - сервис в работе
offline – сервис разрешен, но не запущен
disabled – не разрешен и не запущен
legacy_run – сервис не обслуживаемый SMF. Это состояние единственное для наследственных сервисов
uninitalized – состояние сервиса до того , как будет считана его конфигурация
maintenance – в экземпляре сервиса произошла ошибка.
degraded – разрешен, но выполняется с ограниченной функциональностью  

milestone – тип сервиса который состоит из определенного набора других сервисов.
Также milestone можно охарактеризовать как системное состояние, в котором запуск набора сервисов зависит от наличия других сервисов.

Этапы milestone:
single-user
multi-user
multi-user-server
network
name-services
sysconfig
devices

Демон svc.startd обслуживает системные сервисы и обеспечивает загрузку с необходимым этапом (milestone).
Можно также загрузить систему с конкретного этапа из Open Boot Prom.  Например:
ok>boot –m milestone=multi-user
Для загрузки могут быть использованы следующие этапы milestone:
none
single-user
multi-user
multi-user-server
all

Файлы каталога /var/svc/manifest/milestone/ описывают зависимости для каждого milestone

ls -l /var/svc/manifest/milestone/
total 36
-r--r--r--   1 root     sys         2279 Jan 22  2005 multi-user-server.xml
-r--r--r--   1 root     sys         3048 Jan 22  2005 multi-user.xml
-r--r--r--   1 root     sys         1796 Jan 22  2005 name-services.xml
-r--r--r--   1 root     sys         1467 Jan 22  2005 network.xml
-r--r--r--   1 root     sys         1437 May 21  2009 patching.xml
-r--r--r--   1 root     sys         3706 Jan 22  2005 single-user.xml
-r--r--r--   1 root     sys         1491 Jan 22  2005 sysconfig.xml


База данных репозитория сервисов храниться в каталоге /etc/svc
Управление сервисами можно осуществлять с помощью различных команд, например:
команда svcs –d  показывает взаимозависимости сервисов
svcs -d svc:/system/filesystem/root:default
STATE          STIME    FMRI
disabled       17:09:13 svc:/system/metainit:default
disabled       17:09:13 svc:/system/device/mpxio-upgrade:default

команда svcadm позволяет менять статус сервисов
bash-3.00# svcs svc:/network/telnet:default
STATE          STIME    FMRI
online         17:09:32 svc:/network/telnet:default


svcadm -v disable telnet
svc:/network/telnet:default disabled.
bash-3.00# svcs svc:/network/telnet:default
STATE          STIME    FMRI
disabled       18:06:30 svc:/network/telnet:default


Используя команду svcs –x можно выяснить причины неработоспособности сервисов.
Пример:
svcs -x telnet
svc:/network/telnet:default (Telnet server)
State: disabled since Thu Jun 09 09:25:39 2011
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: in.telnetd(1M)
   See: telnetd(1M)
Impact: This service is not running.


Пример команды включения сервиса:
svcadm enable telnet

Дополнительная информация