【问题标题】:Starting and killing a process based on time根据时间启动和终止进程
【发布时间】:2012-07-03 21:34:12
【问题描述】:

我有一堆不同的进程(主要是 shell 脚本)需要在特定时间启动,然后需要在几个小时后被杀死。现在我通过 cron 启动它们,然后使用另一个 cron 作业来获取进程 ID 并杀死它们。不是最干净的方式,尤其是在运行同一脚本的多个副本时。

我想知道是否有某种可用的包装器可以启动一个进程(在 subshel​​l 中?还是 fork?)然后在给定的时间杀死它。谷歌搜索没有太多收获,所以我想在开始编写自己的内容之前咨询无所不知的 stackoverflow 社区。​​p>

谢谢!

【问题讨论】:

    标签: linux shell scripting


    【解决方案1】:

    您已经拥有的是正确的解决方案。通过 cron 开始,通过 cron 结束。关于同一脚本的多个实例的问题,这是您的需要。您的要求要求运行同一脚本的多个实例?

    获取进程 ID 并杀死它们。当你说你的意思是脚本将它们的 pid 记录在你用来阻止它们的文件中时?或者你使用 ps/pidof

    【讨论】:

      【解决方案2】:

      Monit 是一个出色的工具,可用作包装器来控制/监视进程。

      您的情况属于服务测试功能,您将根据process uptime 采取行动。

       check process myapp with pidfile /var/run/myapp.pid
          start program = "/etc/init.d/myapp start"
          stop program = "/etc/init.d/myapp stop"
          if uptime == 3 hours then stop
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多