2

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

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

谢谢!

4

2 回答 2

0

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

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

于 2012-07-03T12:48:18.097 回答
0

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

您的情况将属于服务测试功能,您将根据流程正常运行时间采取行动。

 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
于 2012-07-03T12:49:14.327 回答