在Bash中每6分钟运行一次命令

时间:2015-10-07 13:43:15

标签: bash centos

我想每隔6分钟安排一次./example这样的命令,当完成6分钟后,它会退出进程并再次运行。我怎么会在Bash中这样做?我运行CentOS。

2 个答案:

答案 0 :(得分:6)

我会每六分钟运行一次cronjob并使用timeout命令在5分50秒之后将其杀死。

这是一个示例crontab规则:

*/6 * * * * cd /path/to/your/file && timeout -s9 290s ./example

它将工作目录更改为您拥有脚本的位置,然后执行脚本。请注意,我使用-s9标志发送信号9(SIGKILL),这意味着“立即终止”。在大多数情况下,您可能需要考虑发送SIGTERM,这会告诉脚本“正常退出”。如果是这种情况,您可以考虑通过减少超时值来为脚本提供更多的时间来退出。要发送SIGTERM而不是SIGKILL,只需删除-s9标志。

您可以通过运行crontab -e

来编辑您的crontab

答案 1 :(得分:2)

在下面的脚本中替换public class Equipment { public int Id { get; set; } public ComplexIntegerValue ShaftSpeed { get; set; } public ComplexSingleValue ShaftSize { get; set; } } public class ComplexIntegerValue { public int Value { get; set; } public int? DefaultValue { get; set; } } public class ComplexSingleValue { public Single Value { get; set; } public Single? DefaultValue { get; set; } } ...

mycommand

每六分钟,这会杀死命令,然后重新启动它。

使用Ctrl-C作为终止此序列的一种方法。