免费注册 查看新帖 |

Chinaunix

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

[服务应用] /etc/inittab自启动的使用问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-01-09 10:18 |只看该作者 |倒序浏览
以下为尝试使用inittab自启动的测试:
我写了一个脚本/opt/test.sh, 这个脚本的功能是输出当前时间到日志文件/opt/test.log中,并且执行deamon程序。
我希望通过在inittab中设置,达到脚本执行完成结束之后,再次执行,使得如果deamon程序崩溃,deamon程序再次启动。

在inittab中加入语句如下:
test:2345:respawn:/opt/test.sh

测试结果是:
1。当手动执行./opt/test.sh时,成功写入日志并且启动deamon
2. reboot  centos,日志未写入,程序未启动,也就是test.sh应该没有执行
3. 手动执行./opt/test.sh后,杀掉deamon,脚本也没有再次执行

请大家帮忙看看是什么问题。



-----test.sh内容如下------
#!/bin/bash

var=`date`
echo $var >> test2.log
cd /opt
ldconfig /opt
ulimit -q unlimited
ulimit -n 20480
./deamon

论坛徽章:
13
技术图书徽章
日期:2014-04-29 14:15:42IT运维版块每日发帖之星
日期:2015-12-12 06:20:00IT运维版块每日发帖之星
日期:2015-08-30 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-08-02 06:20:002015年亚洲杯之澳大利亚
日期:2015-04-03 15:03:12申猴
日期:2015-03-20 09:00:292015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15季节之章:冬
日期:2015-01-20 17:08:47双子座
日期:2014-11-21 16:30:31技术图书徽章
日期:2014-07-11 16:29:08
2 [报告]
发表于 2013-01-09 10:45 |只看该作者
什么版本?

论坛徽章:
0
3 [报告]
发表于 2013-01-09 10:49 |只看该作者
版本是

Linux version 2.6.18-194.el5

论坛徽章:
0
4 [报告]
发表于 2013-01-09 11:12 |只看该作者
另外想到一个问题:

respawn
The process will be restarted whenever it terminates (e.g. getty).

通过respawn启动程序,系统会多久执行一次?
因为test.sh很快就执行完了,就代表了terminates ?系统是不是应该又去执行了?

论坛徽章:
3
程序设计版块每日发帖之星
日期:2016-02-23 06:20:0015-16赛季CBA联赛之八一
日期:2017-10-26 17:58:2515-16赛季CBA联赛之北控
日期:2017-11-02 10:50:56
5 [报告]
发表于 2013-01-09 11:20 |只看该作者
你胆子真大,inittab都敢随便改。

写到rc.local中吧。

至于deamon,可以自己制作

论坛徽章:
0
6 [报告]
发表于 2013-01-09 11:25 |只看该作者
回复 5# 过过招


    rc.local。。我去研究一下有什么区别

  daemon确实是自己的一个小程序,这个自启动就是为了保证这个程序存活于系统之中

论坛徽章:
0
7 [报告]
发表于 2013-01-09 13:23 |只看该作者
test.sh会启动一个daemon,之后就退出是么?能把test.sh的内容贴一下么?

论坛徽章:
0
8 [报告]
发表于 2013-01-09 13:33 |只看该作者
回复 7# sakulagi


    -----test.sh内容如下------
#!/bin/bash

var=`date`
echo $var >> test2.log
cd /opt
ldconfig /opt
ulimit -q unlimited
ulimit -n 20480
./deamon

----------------------------
另外,deamon程序是会一直运行的,不会结束。那么deamon算不算是test.sh的子进程呢?如果是子进程,是不是inittab就不会一直去运行test.sh呢?

论坛徽章:
0
9 [报告]
发表于 2013-01-09 13:54 |只看该作者
在多次测试,reboot之后,奇怪地搞定了。原来的shell路径不对,应该先cd /opt。
结果如下:
test.sh的内容:
---------
cd /opt        
var=`date`
echo $var >> test2.log
./deamon

另外:./deamon持续运行时,进程中test.sh也会存在。每次杀掉deamon,test.sh结束,系统立即会重启test.sh。达到了进程守护的功能。
谢谢各位的帮助



论坛徽章:
0
10 [报告]
发表于 2013-01-09 13:55 |只看该作者
本帖最后由 sakulagi 于 2013-01-09 13:56 编辑

inittab不会检测子进程。如果你的shell脚本会等待daemon运行结束的话,就没有问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP