在 Oracle® Solaris 11.2 中管理系统服务

退出打印视图

更新时间: 2014 年 7 月
 
 

设置属性值

以下命令用于设置属性值:

svccfg setprop

更改属性值。

svccfg addpropvalue

向多值属性添加值。

svccfg setenv

更改服务进程执行环境的环境变量的值。

请记住,使用 svccfg refresh 命令或 svcadm refresh 命令将配置更改提交至运行中的快照。

示例 4-1  设置简单值

setprop 最简单的用法是:为选定服务或实例指定 pg/name,其中 pg 是属性组的名称,而 name 是属性的名称,并在等号后面指定新的值。如果属性已存在或者已模板化,则不需要指定属性类型。

$ svccfg -s pkg/server:s11 setprop pkg/port=81
示例 4-2  设置包含冒号字符的值

如果属性值包含冒号字符 (:),则按下面的示例所示指定属性类型,在该示例中类型为 astring

$ svccfg -s system-repository:default setprop config/http_proxy = astring: https://proxyURI

使用 listprop 子命令查找您想要设置的属性类型。

$ svccfg -s system-repository:default listprop config/http_proxy
config/http_proxy astring
示例 4-3  设置包含嵌入式空格的值

使用双引号设置包含嵌入式空格的值。根据您的 Shell,可能需要在双引号引起来的字符串之外再加上单引号。

$ svccfg -s pkg/mirror setprop config/crontab_period = "00 3 25 * *"
$ svccfg -s pkg/mirror setprop config/crontab_period = '"00 3 25 * *"'

使用引号设置包含双引号或反斜杠字符的值,并使用反斜杠字符转义所有双引号或反斜杠字符。

示例 4-4  设置包含一组值的值

使用括号将一组值指定为一个值。根据您的 Shell,可能也需要在值集外再加上单引号。

$ svccfg -s dns/client setprop config/nameserver = (10.0.0.1 192.168.0.1)
$ svccfg -s dns/client setprop config/nameserver = '(10.0.0.1 192.168.0.1)'
$ svccfg -s dns/client listprop config/nameserver
config/nameserver net_address 10.0.0.1 192.168.0.1

使用 describe 子命令查找值集允许的值数。

$ svccfg -s dns/client describe -v config/nameserver
config/nameserver net_address 10.0.0.1 192.168.0.1
    type: net_address
    required: false
    The IP address of a DNS nameserver to be used by the resolver.
    visibility: readwrite
    minimum number of values: 1
    maximum number of values: 3
  value: 10.0.0.1
  value: 192.168.0.1
示例 4-5  添加值

使用 addpropvalue 子命令向选定服务或服务实例的指定属性添加给定的值。新值将附加到该属性的现有属性值列表的末尾处。

$ svcprop -p keymap/layout keymap:default
US-English
$ svccfg -s keymap:default addpropvalue keymap:layout UK-English
$ svccfg -s keymap:default listprop keymap:layout
keymap/layout astring     "US-English" "UK-English"

在上面的 setprop 示例中,必须一次性指定值集中的所有值。如果仅指定了一个值,则该值将成为仅包含一个值的新值集。在此 addpropvalue 示例中,添加了不同的值。要访问这些添加的值,您必须使用 libscf 函数 scf_iter_property_values() 对所有值进行迭代。虽然 listprop 会列出全部的两个值,但是 describe 仅列出第一个值并报告此属性允许的最大值数为 1。

$ svccfg -s keymap:default describe -v keymap/layout
keymap/layout astring     US-English
    type: astring
    required: true
    The keyboard layout
    visibility: readwrite
    minimum number of values: 1
    maximum number of values: 1
  value: US-English