【问题标题】:Kill a job in Bash Script杀死 Bash 脚本中的工作
【发布时间】:2019-04-06 15:49:06
【问题描述】:

我有 bash 脚本,它调用了许多命令,包括 TOP 命令。 我的问题是如何以编程方式终止 TOP 命令并将控制权交还给脚本,以便它可以继续运行?

谢谢

【问题讨论】:

  • 您想在同一个脚本或另一个脚本中执行此操作吗?您不能在同一个脚本中执行此操作,因为该脚本在 top 退出之前不会继续。

标签: bash kill


【解决方案1】:

将迭代选项-n number-d delay 结合使用。

top -d2 -n10 

... 完成这项工作大约需要 18 秒加上更多时间(第一次和最后一次之间的时间 = 9*2s + 执行时间)。

【讨论】:

    【解决方案2】:

    如果您希望脚本在前台启动 top 一段时间,请使用 timeout 命令:

    timeout --foreground 30s top
    

    在顶部运行 30 秒。

    【讨论】:

      【解决方案3】:

      如果您想稍后在没有用户交互的情况下将其杀死,则不确定首先从脚本中启动 top 是什么。也许启动 top 并使用 & 运算符将其分离就足够了,因此您的脚本不会被阻止:

      #!/bin/bash
      
      echo "before"
      top &
      echo "after"
      

      【讨论】:

        猜你喜欢
        • 2016-01-24
        • 1970-01-01
        • 2017-03-31
        • 2019-01-01
        • 2015-12-22
        • 2015-10-05
        • 2017-11-13
        • 2014-08-09
        • 1970-01-01
        相关资源
        最近更新 更多