免费注册 查看新帖 |

Chinaunix

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

Solaris 10 开机启动脚本不执行,$1 参数为空值 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-09-26 17:41 |只看该作者 |倒序浏览
环境Solaris10 ,x86 ,

我做了一个开机启动脚本S88starttest.sh 放在/etc/init.d 下,然后再/etc/rc3.d在连接到这个脚本。但reboot后不执行,单独在命令行下可以正确执行。跟踪发现在启动时应该在level 3时传递给脚本的$1的参数为空,很奇怪,请帮助解决这个问题。
#/etc/init.d/starttest.sh

/etc/rc3.d下:
S88starttest.sh -> /etc/init.d/starttest.sh

# more   S88starttest.sh
#!/bin/sh
Para1=$1
echo `date` 88para1--$Para1 >>/etc/init.d/test88.log

case "$1" in
start)
....
*)
                echo "`date` Usage: $0 { start | stop }" >>  /etc/init.d/test88.log
                ;;

为什么启动的时候,传递到S88starttest.sh 的参数是空,不是start呢?
Mon Sep 26 17:35:11 HKT 2011 88para1--
Mon Sep 26 17:35:11 HKT 2011 Usage: /etc/rc3.d/S88starttest.sh { start | stop }

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:54:45
2 [报告]
发表于 2011-09-26 18:59 |只看该作者
脚本没有发现问题,但我发现S88starttest.sh这个脚本名是不是你自己起的呀,要是自己起的应该不会传start参数了
你都这么做了应该知道他的原理把,在rc3.d目录下不是每个文件都顺序被执行了吗,但你有没有想过为什么还要传start参数呢?因为操作系统通过传递参数控制系统启动时那个服务是启动的,那个服务是要关闭的,只有配置了开机启动的服务才会传递start参数。
要是你自己起的S88starttest.sh脚本名,系统不会知道对应那个服务,就不会给他传参数。你可以把这个脚本改名为系统中已有的服务脚本看看

论坛徽章:
0
3 [报告]
发表于 2011-09-26 23:17 |只看该作者
本帖最后由 damogyz 于 2011-09-26 23:19 编辑

回复 2# yiguihuo

脚本应该可以自己起名字的。“只有配置了开机启动的服务才会传递start参数” 你能说的详细些吗

论坛徽章:
0
4 [报告]
发表于 2011-09-27 11:19 |只看该作者
问题解决了。  把 S88starttest.sh -> /etc/init.d/starttest.sh 的文件名里.sh 都去掉 就可以了。
难道Solaris 认为 .sh 是shell 脚本文件 就不按照开机启动脚本的规则来执行吗? 谁能解释一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP