应用部署为Solaris 10 SMF服务( 五 )


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所需的权限 。
# cat /etc/user_attr
#
# Copyright (c) 2003 by Sun Microsystems, Inc. All rights reserved.
#
# /etc/user_attr
#
# user attributes. see user_attr(4)
#
#pragma ident "@(#)user_attr 1.1 03/07/09 SMI"
#
adm::::profiles=Log Management
lp::::profiles=Printer Management
root::::auths=solaris.*,solaris.grant;profiles=Web Console Management,All;lock_after_retries=no
hunter::::auths=solaris.smf.manage,solaris.smf.modify
假设本例中开发目录和所有文件都位于/export/home/smfdemo目录下,则将本例部署为SMF服务的步骤如下:
1. 使用svccfg(1M)命令检查myapp.xml文件是否符合XML规范 。如果没问题则不会有任何输出,否则根据出错提示修改myapp.xml 。
# /usr/sbin/svccfg validate /export/home/smfdemo/myapp.xml
2. 使用svcs(1)命令看是否已存在名为myapp的服务 。如有则必须修改在myapp.xml中定义的服务名,否则继续 。
# /usr/bin/svcs application/myapp
3. 使用svccfg(1M)命令加载myapp.xml所定义的服务并自动启动服务 。
# /usr/sbin/svccfg import /export/home/smfdemo/myapp.xml
4. 使用svcs(1)命令查看myapp服务状态 。如状态为online,则说明部署已成功且已运行,否则参看出错原因以及SMF日志以确定问题所在,然后重复上文中相关的步骤后再试 。
# /usr/bin/svcs -xv application/myapp
至此,我的应用myapp已经成功部署为SMF 。
其他操作
myapp成为SMF服务后可以使用以下命令进行管理 。
1. 要禁用myapp服务,请使用/usr/sbin/svcadm disable application/myapp 。
2. 要再次启用myapp服务,请使用/usr/sbin/svcadm enable application/myapp 。
3. 要重启myapp服务,请使用/usr/sbin/svcadm restart application/myapp 。
4. 当myapp服务出现配置错误或其他原因致使myapp的状态为maintenance时,在解决错误原因后,可使用/usr/sbin/svcadm clear application/myapp清除maintenance状态 。
5. 当需要对myapp进行维护时,可将其状态改为maintenance状态,方法是/usr/sbin/svcadm mark application/myapp 。
6. 可使用svccfg(1M)命令对myapp进行配置管理 。具体方法请参看svccfg(1M)使用说明 。
总结
Solaris 10操作系统是Sun公司最新的下一代操作系统,包含了600多项革新技术,SMF技术就是其中之一 。通过使用SMF技术,系统中所有的服务可以在一个统一而强大的平台中进行配置和管理 。同时,它也是预测性自愈技术的组成部分,可以自我侦测各服务的运行状态,尽可能地减少服务下线的机率 。另外,利用SMF 技术系统管理员可以降低系统维护难度,减少人为出错机会 。让我们把自已的应用尽早地部署到SMF框架中去吧 。
参考资料
1. Predictive Self-Healing at BigAdmin System Administration Portal
2. SMF System Administration Guide
3. Solaris 10操作系统/usr/share/lib/xml/dtd/service_bundle.dtd文件
4. Solaris 10操作系统上,以下man页面:
netadm(1M)
inetconv(1M)
inetd(1M)
kernel(1M)
smf(5)
smf_bootstrap(5)
smf_method(5)
svc.startd(1M)

推荐阅读