免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5457 | 回复: 12
打印 上一主题 下一主题

SMF问题:"svcadm enable xxx" 中'enable'可以用自己的执行方法麽? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-23 10:34 |只看该作者 |倒序浏览
1可用积分
就是说我想在执行 "svcadm enable xxx" or "svcadm disable xxx"的时候加一些判断条件,比如某个驱动aaa存在的话我就正常执行, 不然我就先加载驱动。

就是S MF 里面哪里可以自己定义或者修改 svcadm命令的执行方式麽?

最佳答案

查看完整内容

对应关系我可以肯定的告诉你,是的pkill -9 试试看 可否

论坛徽章:
0
2 [报告]
发表于 2008-05-23 10:34 |只看该作者
原帖由 kingsu 于 2008-5-23 16:34 发表
再次svcadm disable xxx 也不行了,还是 online*   状态~~

我相知道 'enable' and 'disable'的方法在哪里修改啊?是不是对应着.xml 里面的 'start' and 'stop'???


对应关系我可以肯定的告诉你,是的

pkill -9 试试看 可否

论坛徽章:
0
3 [报告]
发表于 2008-05-23 12:30 |只看该作者
可以自定义enable or disable的执行方法,请参见sun的官方手册 系统管理指南:基本管理.pdf

论坛徽章:
0
4 [报告]
发表于 2008-05-23 13:46 |只看该作者
用 svccfg export xml文件,做相应修改,或从xml中找到enable,disable相应的脚本或命令,作相应修改
如修改xml文件,用svcfg import导入

论坛徽章:
0
5 [报告]
发表于 2008-05-23 14:57 |只看该作者

现在的情况:

现在的情况是我已经修改了/var/svc/manifest/../*.xml
我修改了其中的 'start' and 'stop' 的执行内容,引到了我自己的shell...
        <exec_method
                type='method'
                name='start'
                exec='./export/home/aaa/myserver.sh start'
                timeout_seconds='60' />

        <exec_method
                type='method'
                name='stop'
                exec='./export/home/aaa/myserver.sh stop'
                timeout_seconds='60' />

但是这个'start' and 'stop' 对应的是 'svcadm enable xxx' and 'svcadm disable xxx' 中的 'enable' and 'disable' 吗?

myserver.sh 部分如下:

'stop')

modinfo | grep drivername > /dev/null

if [ $? = 0 ]

then
/usr/bin/pkill /export/home/aaa/myserver

EOF

但是每次执行'svcadm disable myserver' 都失败。。。
为何呢?

论坛徽章:
0
6 [报告]
发表于 2008-05-23 15:01 |只看该作者
在/var/svc/log下看log文件

论坛徽章:
0
7 [报告]
发表于 2008-05-23 15:37 |只看该作者

好的

过程如下:
#svcs myserver
STATE          STIME    FMRI
disabled       15:21:46 svc:/application/myserver:default

#svcadm enable myserver
#svcs myserver
STATE          STIME    FMRI
online         15:22:57 svc:/application/myserver:default

#svcadm disable myserver
#svcs myserver
STATE          STIME    FMRI
online*        15:24:19 svc:/application/myserver:default //多了个"*"...

#svcadm disable myserver    //再次执行 disable
# svcs myserver
STATE          STIME    FMRI
disabled       15:26:08 svc:/application/myserver:default //正常了...

log 信息如下:
[  5月 23 15:22:57 Enabled. ]
[  5月 23 15:22:57 Executing start method ("./export/home/aaa/myserver.sh start") ]
[  5月 23 15:22:57 Method "start" exited with status 0 ]
[  5月 23 15:24:19 Stopping because service disabled. ]
[  5月 23 15:24:19 Executing stop method ("./export/home/aaa/myserver.sh stop") ]
[  5月 23 15:24:19 Method "stop" exited with status 0 ]
[  5月 23 15:25:20 Method or service exit timed out.  Killing contract 100 ]
[  5月 23 15:26:08 Leaving maintenance because disable requested. ]
[  5月 23 15:26:08 Disabled. ]

论坛徽章:
0
8 [报告]
发表于 2008-05-23 16:34 |只看该作者

郁闷

再次svcadm disable xxx 也不行了,还是 online*   状态~~

我相知道 'enable' and 'disable'的方法在哪里修改啊?是不是对应着.xml 里面的 'start' and 'stop'???

论坛徽章:
0
9 [报告]
发表于 2008-05-23 17:59 |只看该作者
用于 svcs(1) 命令的列名区分大小写,这些列名如下:

CTID:服务实例的主合同 ID(如果存在)。
DESC:来自服务模板元素的简短服务描述。服务可能没有可用的描述,在这种情况下,使用连字符表示空值。
FMRI:服务实例的 FMRI。
INST:服务实例的实例名称。
NSTA:服务实例的下一个状态(缩写形式),可参见 STA 列描述。连字符表示实例未进行转换,否则它将与 STA 相同。
NSTATE:服务的下一个状态。连字符表示实例未进行转换,否则它将与 STATE 相同。
SCOPE:服务实例的范围名称。
SVC:服务实例的服务名称。
STA:服务实例状态的缩写形式。
STATE:服务实例的状态。除非还显示 NSTA 或 NSTATE 列,否则在转换时对实例附加星号。
STIME:如果服务实例在最近 24 小时内进入当前状态,则此列指示它进入此状态的时间。否则,此列指示它进入此状态的日期,输出时用下划线代替空白。

引自http://developer.sun.com.cn/home ... icles/selfheal.html
svcs -v myserver 看一下

论坛徽章:
0
10 [报告]
发表于 2008-05-26 10:41 |只看该作者
关键是我用 pkill or kill myserver 后, 发现svcs myserver 状态 是 maintance , 而原来直接在.xml里面用':kill' 则状态变为 disable ,
所以 我想用自己的脚本把 myserver 变为 disable 状态,应该如何做呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP