[Solaris] Некоторые хитрости при работе с сервисами

В этой статье я расскажу о некоторых особенностях, которые очень помогают при работе с сервисами.

1) Копия сервиса с отличием.

Цель: создать сервис, у который будет отличаться 1-2 параметрами от исходного.

# svccfg -s service add other
# svccfg -s service:other setprop start/exec = astring: "other"
# svcadm disable service:other

Без последней строки вы его не увидите через svcs -a. Дальше можно менять остальные параметры сервиса независимо от исходного.

2) Enviroment

Дело в том, что параметры enviroment’a — это multistring array, хотя и отображается как одна строка. Просто так менять его через setprop нельзя. Правильно меняется вот так:

svc:/application/pm2:admin> setenv HOME /opt/admin

при этом меняется только параметр HOME, остальные переменные остаются прежними. Добавляется новый enviroment тоже командой setenv

Удалить определённый enviroment:

svc:/application/pm2:admin> unsetenv HOME

Для method_context значения меняются с добавлением параметра ‘-i‘:

svc:/application/pm2:admin> setenv -i TEST true

3) Правка multistring array.

Если нужно изменить мультристрочный параметр, то делаем это так:

svc:/application/pm2:admin> setprop method_context/environment =astring: ("PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/usr/sbin" "HOME=/opt/admin" "NODE_ENV=production")

4) Правка опций с пробелами.

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

# svccfg -s pm2:admin setprop method_context/environment =astring: '("PATH=/opt/local/bin:/opt/local/sbin:/usr/bin:/usr/sbin" "HOME=/opt/admin" "NODE_ENV=production")'

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *