我想每隔6分钟安排一次./example
这样的命令,当完成6分钟后,它会退出进程并再次运行。我怎么会在Bash中这样做?我运行CentOS。
答案 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
答案 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作为终止此序列的一种方法。