以下命令用于设置属性值:
更改属性值。
向多值属性添加值。
更改服务进程执行环境的环境变量的值。
请记住,使用 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