【问题标题】:How to check if immediate previous run failed or not?如何检查前一次运行是否失败?
【发布时间】:2018-01-27 03:59:17
【问题描述】:

我有一个 perl 脚本可以运行并进行一些检查。
在某些情况下,脚本会失败并停止处理,而在其他情况下则会完成。
我想做的是能够检查脚本是否在 1 分钟内运行,如果运行以某种方式成功然后退出。
我考虑过保存一些文件或检查 $?,作为一个指示,但我认为可能存在一些标准的干净方法。
想要一个适用于 linux 和 mac 的解决方案

【问题讨论】:

  • 您可以捕获所有异常并将结果写入某处。
  • @Сухой27:如果下一次运行不到 1 分钟,我想以某种方式表明运行成功
  • 我不相信这种情况有标准的方法。
  • 我会尝试使用timeout 命令然后检查$?,或者如果您不关心实际的退出代码,则只需在if 中运行它以测试成功。跨度>
  • 定义“成功”。如果运行符合条件,则创建一个文件作为脚本的最终操作,否则不创建。下次运行脚本时,检查文件是否存在并在所需时间内创建(修改)。如果文件存在,请在运行开始时删除该文件。

标签: linux bash macos perl


【解决方案1】:

您可以通过尝试这样的操作来查看您的脚本是否在一分钟后结束:

sleep 60
ps -ae | grep yourScript.name

这必须与您的脚本同时执行。如果它没有返回任何内容,则意味着您的脚本不再运行,也就是已经结束。

对于最终结果,您可以让您的 perl 脚本写入特定的日志文件,如果 ps -ae | grep yourScript.name 没有返回任何内容,请检查该日志文件的结尾。

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多