几秒钟后终止作业并进入下一步循环

时间:2018-02-22 08:22:57

标签: linux bash shell unix

简短问题

几秒后终止下载命令

详细

我有一个文件,其中每一行都有一个cron作业,如果我逐行解析它,那么我将能够手动运行它。

有点像这样

job1
job2
job3

我想交叉检查我是否能够运行所有这些工作,所以我写了一个shell脚本,并且我能够运行每个命令。 但主要问题是如果成功命令我无法终止并转移到下一行,我需要等待该工作完成

到目前为止我尝试了什么

方法1:

eval job1& sleep 3 ; kill -9 `ps -ef | grep "my process" | awk '{print $2}'`

方法2:

eval job1& sleep 3 ; kill $! // not able to do this :(

1 个答案:

答案 0 :(得分:2)

您可以使用timeout命令实现此目的:

date; timeout 3 sleep 10; date
2018年  2月 22日 木曜日 17:27:34 JST
2018年  2月 22日 木曜日 17:27:37 JST

正如您所见,3秒后睡眠停止了。

您可以定义必须将哪个信号发送到正在运行的命令,默认情况下会发送SIGTERM信号,并接受不同的持续时间格式:10s1m ,. ..