LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1053|回复: 8

如何让一个程序在几秒后执行?

[复制链接]
发表于 2004-11-23 20:35:30 | 显示全部楼层 |阅读模式
想做到在几秒后在执行某个命令,如何写命令/编辑.sh文件?
发表于 2004-11-23 22:12:19 | 显示全部楼层
用sleep可以满足你的需要吗?
 楼主| 发表于 2004-11-23 23:16:40 | 显示全部楼层
不完全能,也许是我对sleep还不够了解。问题是这样的:
我需要执行一个程序,如果这个程序执行时间超过1s,就将其停止。如果程序执行不到1s,就应该继续执行下面的内容而不等待。
如果用sleep语句,好像必须等满1s才可以继续执行下面的操作。
是不是这样?
发表于 2004-11-24 08:42:33 | 显示全部楼层
sleep 1s | top
这样就只有1秒后再执行,
但是1s内的怎么办,
后台运行??
发表于 2004-11-24 12:03:21 | 显示全部楼层
最初由 chenxingchen 发表
不完全能,也许是我对sleep还不够了解。问题是这样的:
我需要执行一个程序,如果这个程序执行时间超过1s,就将其停止。如果程序执行不到1s,就应该继续执行下面的内容而不等待。
如果用sleep语句,好像必须等满1s才可以继续执行下面的操作。
是不是这样?


先用time来预计时间再决定程序的执行可否?
 楼主| 发表于 2004-11-24 20:43:19 | 显示全部楼层
我是想用来评测程序的,也就是说看一个程序能否在1s内执行结束,如果不能结束,就强制结束程序。就是想做到这个。
可是sleep 1的话要等候一段时间,所以想避免等候,不知应该如何做。
发表于 2004-11-25 01:10:55 | 显示全部楼层
最初由 chenxingchen 发表
我是想用来评测程序的,也就是说看一个程序能否在1s内执行结束,如果不能结束,就强制结束程序。就是想做到这个。
可是sleep 1的话要等候一段时间,所以想避免等候,不知应该如何做。


据我所知,sleep决定的秒数是不严格精确的,所以兄弟指定了1秒的时间是不能精确定位程序的执行时间的,若要获取精确的时间,需用C写程序或其它的办法

time命令可以评价程序的执行时间,也能达到评测程序的作用,但它需要执行完程序,达不到兄弟的要求

以兄弟的要求来看,是比较精确的时间,我认为用sleep时间的不精确性是不能达到要求的,可以试试用ps命令获取进程的开始时间,不断和当前的时间比较,大于1秒时就kill掉进程
 楼主| 发表于 2004-11-25 21:40:32 | 显示全部楼层
“以兄弟的要求来看,是比较精确的时间,我认为用sleep时间的不精确性是不能达到要求的,可以试试用ps命令获取进程的开始时间,不断和当前的时间比较,大于1秒时就kill掉进程” 请问这个可以用shell实现吗?
发表于 2004-11-25 23:42:12 | 显示全部楼层
最初由 chenxingchen 发表
“以兄弟的要求来看,是比较精确的时间,我认为用sleep时间的不精确性是不能达到要求的,可以试试用ps命令获取进程的开始时间,不断和当前的时间比较,大于1秒时就kill掉进程” 请问这个可以用shell实现吗?


应该可以实现,我未做过实验,另外一个问题是能否很精确的实现1秒问题还是不知晓,兄弟可以写一个脚本试下,ps能得到进程开始时间,但要用过滤器滤出字段,之后就以当前时间来做比较

只能提供思路,未做过实验
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表