免费注册 查看新帖 |

Chinaunix

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

linux里如何让一个程序运行30秒然后被kill??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-26 23:07 |只看该作者 |倒序浏览
因为对时间要的求不是很精确,我是用sleep和signal来做定时运行.

test case的话,只想让tshark运行30秒,然后tshark被kill pid,然后等10分钟,tshark程序再运行

但是我是在程序里用SYSTEM来向console发命令的,所对好像是在定时器这些方面有问题,让tshark 运行30秒,做不出来效果。

我在main()里是这么写的

system("tshark > logtext.txt &echo $! > tsharkpid"); // 发tshark命令,写 tshark pid到文件里

/*
这里要怎么写,才能让tshark 跑上30秒??????????
*/

system("kill `cat tsharkpid`"); //kill tshark by pid

sleep(600);  //让主程序等十分钟后再运行,
sigqueue(getpid(), 50, tsval);//恢复运行

论坛徽章:
0
2 [报告]
发表于 2008-07-27 09:22 |只看该作者
为嘛不用crontab

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
3 [报告]
发表于 2008-07-27 11:03 |只看该作者
原帖由 贺兰云天 于 2008-7-27 09:22 发表
为嘛不用crontab

Are you crazy?

论坛徽章:
0
4 [报告]
发表于 2008-07-27 11:08 |只看该作者
原帖由 MMMIX 于 2008-7-27 11:03 发表

Are you crazy?


不能做吗

[ 本帖最后由 贺兰云天 于 2008-7-27 11:09 编辑 ]
aquei 该用户已被删除
5 [报告]
发表于 2008-07-27 20:13 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
6 [报告]
发表于 2008-07-28 11:45 |只看该作者
int pid = getpid();
char cmd[100];
sprintf(cmd, "kill -s 9 %d",pid);
system(cmd);

论坛徽章:
0
7 [报告]
发表于 2008-07-28 12:17 |只看该作者

回复 #4 贺兰云天 的帖子

想走捷径啊。............

论坛徽章:
0
8 [报告]
发表于 2008-07-28 13:33 |只看该作者

http://linux.chinaunix.net/bbs/thread-1013559-1-7.html
的这个程序稍加修改,然后在配置文件中增加一项 runtime=...
变为
  1. # author duanjigang @ 20070318 <[email]duanjigang1983@126.com[/email]>
  2. # des: processess list to monitor in a linux system
  3. # name------------------------path-----------------------------parameter------------------
  4. #just a test program
  5. <name="test1"; path="/bin/test1"; param="p12 p12 p13",waittime="3",runtime="600">
复制代码

waittime表示程序结束后多久重启他
runtime表示允许这个程序运行多久就结束他
这个比较灵活了,你也不需要在你的程序中搞了,直接写配置文件就行

[ 本帖最后由 贺兰云天 于 2008-7-28 13:36 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2008-07-30 17:08 |只看该作者


为什么不用alarm?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP