电脑技术学习

使用libscf.so实现SMF服务refresh方法

dn001

  2. 使用svccfg(1M)修改myapp服务myapp属性组中log_filename属性。

# /usr/sbin/svccfg
svc:> select application/myapp
svc:/application/myapp> listprop
general framework
general/single_instance boolean true
milestone dependency
milestone/entitIEs fmri svc:/milestone/multi-user
milestone/grouping astring require_all
milestone/restart_on astring none
milestone/type astring service
start method
start/exec astring "/export/home/smfdemo/myapp.sh start"
start/timeout_seconds count 60
start/type astring method
stop method
stop/exec astring :kill
stop/timeout_seconds count 60
stop/type astring method
refresh method
refresh/exec astring ":kill -8"
refresh/timeout_seconds count 60
refresh/type astring method
myapp application
myapp/log_filename astring /tmp/myapp.log
svc:/application/myapp> setprop myapp/log_filename = "/tmp/myapp_new.log"
svc:/application/myapp> listprop
general framework
general/single_instance boolean true
milestone dependency
milestone/entities fmri svc:/milestone/multi-user
milestone/grouping astring require_all
milestone/restart_on astring none
milestone/type astring service
start method
start/exec astring "/export/home/smfdemo/myapp.sh start"
start/timeout_seconds count 60
start/type astring method
stop method
stop/exec astring :kill
stop/timeout_seconds count 60
stop/type astring method
refresh method
refresh/exec astring ":kill -8"
refresh/timeout_seconds count 60
refresh/type astring method
myapp application
myapp/log_filename astring /tmp/myapp_new.log
svc:/application/myapp> quit

  3. 使用svCADm refresh命令通知myapp服务重读配置并启用新配置。

# /usr/sbin/svcadm refresh application/myapp
# /usr/bin/svcs application/myapp
STATE STIME FMRI
online 11:13:35 svc:/application/myapp:default

  4. 检验myapp已经采用新配置。

# /usr/bin/tail -f /tmp/myapp_new.log
myapp is running at Fri Mar 10 11:14:35 2006
myapp is running at Fri Mar 10 11:14:40 2006
myapp is running at Fri Mar 10 11:14:45 2006
myapp is running at Fri Mar 10 11:14:50 2006
myapp is running at Fri Mar 10 11:14:55 2006
myapp is running at Fri Mar 10 11:15:00 2006
^C

  至此,测试myapp服务refresh方法已经成功。

  总结

  Solaris 10操作系统是Sun公司最新的下一代操作系统,包含了600多项革新技术,SMF技术就是其中之一。通过使用SMF技术,系统中所有的服务可以在一个统一而强大的平台中进行配置和管理。通过将用户配置存放于SMF资源库,用户可以利用SMF配置工具svccfg(1M)方便地维护服务配置。另外,libscf.so所提供的API也可以使服务程序省去大部分复杂的配置读取和解析逻辑。

标签: