То что в предыдущих версия Solaris запускалось из /etc/init.d — /etc/rc?.d, в Solaris 10 устанавливается и управляется как службы (SMF — Service Management Facility)
Как быстро создать свою службу, без того, чтобы перерыть кучу документации ?
Две небольшие инструкции, в которых все очень подробно описано:

Для создания SMF конфига манифеста можно воспользоваться шаблонами из вышеприведенных источников, а можно воспользоваться

интерактивной программкой manifold.
Это питоновский скрипт, с установкой пришлось разбираться ;(
Итак, загружаем setuptools source, Genshi source и Manifold source.
Распаковываем, получаем 3 каталога

bash-3.00$ ls -l
total 3668
drwxr-xr-x 9 root root 512 Jun 29 17:56 Genshi-0.6
-rw-r--r-- 1 korolev other 842494 Jun 29 16:54 Genshi-0.6.zip
drwxrwxr-x 7 501 501 512 Jun 29 17:45 Manifold-0.2.0
-rw-r--r-- 1 korolev other 40960 Jun 29 14:39 Manifold-0.2.0.tar
drwxrwxr-x 7 506 506 1024 Jun 29 16:13 setuptools-0.6c11
-rw-r--r-- 1 korolev other 952320 Jun 29 15:08 setuptools-0.6c11.tar

Сначала устанавливаем setuptool, затем genshi, затем Manifold:
# cd setuptools-0.6c11; python setup.py install
# cd ../Genshi-0.6; python setup.py install
# cd ../Manifold-0.2.0; python setup.py install

После этого программка скомпилится, бинарник располагается в /usr/bin

После этого интерактивно создаем файл-манифест:
bash-3.00$ manifold test1.xml

The service category (example: 'site' or '/application/database') [site]

The name of the service, which follows the service category
(example: 'myapp') [] my_test_app

The version of the service manifest (example: '1') [1]

The human readable name of the service
(example: 'My service.') [] My test service

Can this service run multiple instances (yes/no) [no] ?

Full path to a config file; leave blank if no config file
required (example: '/etc/myservice.conf') [] /export/home/test1app/test1.cfg

The full command to start the service; may contain
'%{config_file}' to substitute the configuration file
(example: '/usr/bin/myservice %{config_file}') [] /export/home/test1app/bin/app -c %{config_file}' start

The full command to stop the service; may specify ':kill' to let
SMF kill the service processes automatically
(example: '/usr/bin/myservice_ctl stop' or ':kill' to let SMF kill
the service processes automatically) [:kill] /export/home/test1app/bin/app stop

Choose a process management model:
'wait' : long-running process that runs in the foreground (default)
'contract' : long-running process that daemonizes or forks itself
(i.e. start command returns immediately)
'transient' : short-lived process, performs an action and ends quickly
[wait] contract

Does this service depend on the network being ready (yes/no) [yes] ?

Does this service depend on the local filesystems being ready (yes/no) [yes] ?

Should the service be enabled by default (yes/no) [no] ?

The user to change to when executing the
start/stop/refresh methods (example: 'webservd') [] testuser

The group to change to when executing the
start/stop/refresh methods (example: 'webservd') [] testuser

Manifest written to test1.xml
You can validate the XML file with "svccfg validate test1.xml"
And create the SMF service with "svccfg import test1.xml"

bash-3.00$ cat test1.xml
....

Ссылки в тему:
Solaris Service Management Facility — Quickstart Guide
SMF Sun BluePrint

Один комментарий на запись “Как создать в Solaris новую службу (smf service) ?”

  1. AnViar пишет:

    Поднял кучу экспириенса разбираясь с этим в разрезе SNMP, а в итоге оказалось, что дефолтный вполне устраивает. :)
    Хотя о потраченом времени не жалею ;)