【问题标题】:Stop Bash Script after a Particular Interval [duplicate]在特定时间间隔后停止 Bash 脚本 [重复]
【发布时间】:2018-05-10 13:50:16
【问题描述】:
#!/bin/bash
ls -l /bin/bash
ls -l /sbin/bash
ls -l /usr/local/bin/bash
ls -l /usr/bin/bash
ls -l /usr/sbin/bash
ls -l /usr/local/sbin/bash

运行此脚本后,如果时间超过 60 秒,我想停止此脚本。 假设第一个命令在 10 内执行,第二个命令需要 50 秒后我必须停止脚本的执行。

【问题讨论】:

  • 为什么脚本需要超过 60 秒?这些只是几个ls 命令。
  • @hek2mgl 有趣的地方。假设是这样。
  • 如果其中一个目录非常大,在某些平台(至少是 Linux)上可能需要很长时间。系统调用是非阻塞的,所以超时不一定能中断它。
  • 它只是一个例子..命令会改变..在现实世界场景中
  • 那么不好的例子。

标签: linux bash


【解决方案1】:

使用timeout(1)

timeout 60 ./your_script.sh

或者事后杀死它:

./your_script.sh & :
sleep 60 && kill $!

【讨论】:

  • 没有超时?
  • @NicK 不。我不知道别的。也许事后杀了它。
  • 我不是 linux 专家,这就是我面临这个问题的原因......我知道第一行捕获当前时间的方式,并在执行每个命令后检查是否超过预期时间.杀死进程.. 杀死命令也在每个命令的 else 部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 1970-01-01
  • 2012-12-09
相关资源
最近更新 更多