免费注册 查看新帖 |

Chinaunix

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

如何限定指定的最大执行时间? [复制链接]

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-24 16:48 |只看该作者 |倒序浏览
15可用积分
比如我想运行某个命令,如
df -h

但当mount了其他机器的目录,如果网络不好,df会卡住。
这样会把我的整个脚本卡在那里。

有没有办法限制某个指令的最大执行时间,超过这个时间就强行kill掉。

最佳答案

查看完整内容

看看这个http://www.ibm.com/developerworks/cn/linux/l-job-terminating/

论坛徽章:
0
2 [报告]
发表于 2007-09-24 16:48 |只看该作者

论坛徽章:
0
3 [报告]
发表于 2007-09-24 16:50 |只看该作者
ulimit??

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
4 [报告]
发表于 2007-09-24 16:56 |只看该作者
( sleep someseconds; kill pidofdf )&

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2007-09-24 21:13 |只看该作者
原帖由 waker 于 2007-9-24 16:56 发表
( sleep someseconds; kill pidofdf )&


可否给一个完整的例子?

论坛徽章:
0
6 [报告]
发表于 2007-09-24 21:59 |只看该作者
( sleep 5; ps -ef | grep -v grep | grep df | awk '{printf( "kill -9 %s\n", $2 )}' | sh )&

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2007-09-24 22:22 |只看该作者
原帖由 wmjie 于 2007-9-24 21:59 发表
( sleep 5; ps -ef | grep -v grep | grep df | awk '{printf( "kill -9 %s\n", $2 )}' | sh )&


这容易误杀其他的df。

目前困难就是取得df运行的进程号。不建议使用ps|grep的方法。

运行df&会返回一个pid,问题是怎么在脚本中取得这个号?

还有sleep的时间问题,如果我希望最多等30秒,但是df一秒钟就运行完毕了,我的脚本总不能傻等30秒再继续运行吧?

[ 本帖最后由 auser 于 2007-9-24 22:24 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2007-09-25 02:50 |只看该作者
原帖由 auser 于 2007-9-24 22:22 发表

还有sleep的时间问题,如果我希望最多等30秒,但是df一秒钟就运行完毕了,我的脚本总不能傻等30秒再继续运行吧?

你没看清楚waker的帖。不会有你担心的这个问题。sleep和kill都在后台与你的脚本并行。如果你一定要担心,唯一要担心的是df结束后进程id分配给别的进程,而在一般繁忙的系统中,30秒内这样的机会和六合彩差不多吧?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
9 [报告]
发表于 2007-09-25 08:39 |只看该作者
运行df&会返回一个pid,问题是怎么在脚本中取得这个号?
在df &以后立即用$!获得,也可以用 kill %n, n是df 的jobs ID

论坛徽章:
0
10 [报告]
发表于 2007-09-25 16:56 |只看该作者
如果是因为MOUNT NFS使DF卡住,那么这个df进程你是杀不掉的。kill -9也没用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP