Категорії
Solaris

Работаем с сервисами

Работа со сервисами в Solaris немного отличается от привычной в Linux/FreeBSD. Управление сервисами осуществляется через утилиты svc* (svcadm, svcs, svccfg, svcprop), а если сервисы запущены через inetd, то управляться должны через inetadm.

Тестовый стенд: Solaris 10

Пару слов скажу об управлении сервисами. Так же как и в других *nix системах, существует 2 способа запуска сервисов: через inetd и через SMF. Я рекомендую использовать SMF. Ниже будет рассмотрен способ управления через SMF. Об inetd будет сказано отдельно

Способ управления через SMF

1) Информация о сервисах:

$ svcs | more
STATE STIME FMRI
legacy_run 19:00:13 lrc:/etc/rc2_d/S20sysetup
legacy_run 19:00:13 lrc:/etc/rc2_d/S72autoinstall
legacy_run 19:00:13 lrc:/etc/rc2_d/S73cachefs_daemon
legacy_run 19:00:13 lrc:/etc/rc2_d/S89PRESERVE
legacy_run 19:00:13 lrc:/etc/rc2_d/S98deallocate
legacy_run 19:00:14 lrc:/etc/rc3_d/S16boot_server
online 19:00:04 svc:/system/svc/restarter:default
online 19:00:05 svc:/network/pfil:default
online 19:00:05 svc:/network/loopback:default
online 19:00:05 svc:/network/physical:default
online 19:00:06 svc:/system/filesystem/root:default
online 19:00:07 svc:/system/boot-archive:default
...

Если нужно посмотреть список абсолютно всех, даже отключенных, используем команду

# svcs -a

Получить информацию о конкретном сервисе:

$ svcs ssh
STATE STIME FMRI
online 19:00:13 svc:/network/ssh:default

Или в расширенном виде (список зависимостей, uptime сервиса и прочее)

$ svcs -l ssh
fmri svc:/network/ssh:default
name SSH server
enabled true
state online
next_state none
state_time 14 листопада 2011 р. 19:00:13 EET
logfile /var/svc/log/network-ssh:default.log
restarter svc:/system/svc/restarter:default
contract_id 123
dependency require_all/none svc:/system/filesystem/local (online)
dependency optional_all/none svc:/system/filesystem/autofs (online)
dependency require_all/none svc:/network/loopback (online)
dependency require_all/none svc:/network/physical (online)
dependency require_all/none svc:/system/cryptosvc (online)
dependency require_all/none svc:/system/utmp (online)
dependency require_all/restart file://localhost/etc/ssh/sshd_config (online)

Так же для расширенного вывода информации можно использовать ключ ‘-v’

2) Управление сервисами

– запустить (включить)

#svcadm enable ssh

Если нужно запустить однажды (будет запущен только до ребута), используем ключ ‘-t’:

#svcadm enable -t ssh

Так же полезен ключ ‘-r’, который выполняет рекурсивно для зависимостей данную команду.

– перезапустить

#svcadm restart ssh

– перечитать конфиг (сделать reload)

#svcadm refresh ssh

– остановить (отключить)

#svcadm disable ssh

Так же можно использовать ключ ‘-t’ как и в случае с enable

– узнать инфу, если сервис недоступен (например, почему?)

#svcadm -x

Ещё можно использовать ключ ‘-v’ для всех опций svcadm для выводы дебага в консоль.

3) Управление параметрами сервисов

Что бы получить информацию о переменных сервиса, существует команда svcprop. К примеру, получим информацию о параметрах сервиса ssh:

# svcprop -Cv ssh
general/enabled boolean true
restarter/logfile astring /var/svc/log/network-ssh:default.log
restarter/contract count 123
restarter/start_pid count 772
restarter/start_method_timestamp time 1321290013.364066000
restarter/start_method_waitstatus integer 0
restarter/auxiliary_state astring none
restarter/next_state astring none
restarter/state astring online
restarter/state_timestamp time 1321290013.368185000

Как видим, можно узнать куда пишутся логи, uptime. Вывод чем-то похож на svcs.

Для управления конфигурацией сервисе служит программа svccfg. С ей помощью вы можете изменять параметры сервиса, выгружать и загружать конфигурацию. Она имеет 2 режима: интерактивный и командный. Для более подробной информации обратитесь к документации.

4) Логгирование.

Каждый сервис пишет свои сообщения только в свой лог (за исключением syslog и прочих общих логов) в каталог /var/svc/log. В нём он создаёт файл с полным именем, к примеру network-dns-client:default.log.

Способ управления через inetd

Здесь всё достаточно просто. Есть одна команда для управления, просмотра – inetadm.

– посмотреть сервисы

# inetadm
ENABLED STATE FMRI
disabled disabled svc:/network/rexec:default
disabled disabled svc:/network/echo:dgram
disabled disabled svc:/network/echo:stream
enabled online svc:/network/stlisten:default
enabled online svc:/network/finger:default
...

– информация о сервисе

# inetadm -l telnet
SCOPE NAME=VALUE
name="telnet"
endpoint_type="stream"
proto="tcp6"
isrpc=FALSE
wait=FALSE
exec="/usr/sbin/in.telnetd"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE
default connection_backlog=10

– включить/выключить

делается это через ключи ‘-e’/’-d’

#inetadm -e telnet

– изменить параметры сервиса

Используем ключи -m (для конкретного сервиса) и -M (глобальные параметры; их кстати, можно посмотреть командой inetadm -p)

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP
Powered by Muff