如何运行在Bash中使用超时的过程? [重复] 如何运行在Bash中使用超时的过程? [重复]

2019-05-13 13:56发布

可能重复:
bash脚本,在给定超时后杀死一个子进程

有没有写一个shell脚本,将15秒执行某个命令的方式,然后杀死命令?

我曾尝试睡觉,等待和平安,但也许我使用他们错了。

Answer 1:

使用timeout命令:

timeout 15s command

注:在某些系统上,你需要安装coreutils ,别人是缺少或有不同的命令行参数。 见发表@ArjunShankar一个替代的解决方案。 在此基础上,你可以封装该锅炉板代码,并创建自己的便携式timeout脚本或小C的应用程序,做同样的事情。



Answer 2:

有些机器没有timeout安装/使用。 在这种情况下,你可以后台进程; 其PID然后被存储为$! ; 然后睡在要求的时间量,然后杀死它:

some_command arg1 arg2 &
TASK_PID=$!
sleep 15
kill $TASK_PID

在这个网址我发现有提到的,不止一个解决方案,以实现这一目标。



文章来源: How to run a process with a timeout in Bash? [duplicate]