阅 读 文 章

应用部署为Solaris 10 SMF服务

[来源:网上转载 () | 作者:网友() | 时间:2007-07-07 | 浏览:人次 ]

事实上还有许多标签项目可以设定,但对于本例不是必要的,所以可省略不设。有关manifest文件编写更详细信息,请参看Solaris Service Management Facility - Service Developer Introduction

启停方法客户化

SMF框架中svcs(1)命令非常有用,它不但可以列出系统中所有的服务资源及状态,还可以提供那些未正常启动的服务的出错原因、影响范围和可能的恢复方法等。比如,它可以报告说某个服务因为配置不正确而未正常启动,或者某服务遇到致使错误请参SMF的某个日志文件等。SMF之所以能够提供这些信息是由于启动和停止方法提供了相关的信息。SMF要求所有启动和停止方法必须返回一组特定的值,具体值可以参看Solaris 10操作系统/lib/svc/share/smf_include.sh文件尾部。

本例中,表2所示的/etc/init.d/myapp.sh可能返回3种值,$CONFIG_ERROR、$FATAL_ERROR和$ RUN_OK。现目标是要替换原返回值为相应的SMF返回值,如果没有相应的SMF返回值,则替换为最合适的SMF返回值,使服务非正常退出时,SMF能够报告可令人接受的错误原因。本例修改方法如下:

1. 首先,将表2所示的/etc/init.d/myapp.sh文件拷贝到开发目录下,比如/export/home/smfdemo目录下。后面步骤中所有修改都改在拷贝内。

2. 通过增加“. /lib/svc/share/smf_include.sh”到myapp.sh头部,将SMF所需的各返回变量和过程包含到myapp.sh脚本。

3. 替换“exit $CONFIG_ERROR”为“exit $SMF_EXIT_ERR_CONFIG”,因为$SMF_EXIT_ERR_CONFIG与原退出码$CONFIG_ERROR退出原因最相近。

4. 替换“exit $FATAL_ERROR”为“exit $SMF_EXIT_ERR_FATAL”,因为$SMF_EXIT_ERR_FATAL与原退出码$FATAL_ERROR退出原因最相近。

5. 替换“exit $RUN_OK”为“exit $SMF_EXIT_OK”,因为$SMF_EXIT_OK与原退出码$RUN_OK退出原因最相近。

6. 删除stop case及其操作。因为stop方法已在myapp.xml中另行处理,不再需要myapp.sh了。

7. 修改default case中的echo,以反映正确的usage。

修改后的myapp.sh如表4所示。至此,所有前期准备工作都已完成,下面就可以进行部署了。

表4.
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28
#!/sbin/sh

###############################################################################

# /export/home/smfdemo/myapp.sh #

###############################################################################

. /lib/svc/share/smf_include.sh

RUN_OK=0

CONFIG_ERROR=1

FATAL_ERROR=2

case "$1" in

'start')

/export/home/hunter/smf/myapp_smf

if [ $? -eq $CONFIG_ERROR ]; then

exit $SMF_EXIT_ERR_CONFIG

fi

if [ $? -eq $FATAL_ERROR ]; then

exit $SMF_EXIT_ERR_FATAL

fi

;;

*)

echo "Usage: $0 start"

;;

esac

exit $SMF_EXIT_OK

部署我的应用为SMF服务

管理和修改SMF服务分别需要solaris.smf.manage和solaris.smf.modify权限,具体请参看 smf_security(5)。缺省只有root有此权限,可使用root部署SMF服务。如果使用普通用户账号,则需要root将 solaris.smf.manage和 solaris.smf.modify权限赋予相关用户。方法是在/etc/user_attr文件中加入授权记录。比如为用户hunter加入SMF管理和修改权限,则/etc/user_attr显示如下,其中粗斜体部分为hunter所需的权限。

论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 服务 部署 应用 SMF 可以 myapp 启动 文件 exit 方法

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.