说我是否有像这样的exec资源:
exec { 'Task1':
command => '/bin/long-running-task',
timeout => 3600,
}
如果这个长时间运行的任务失败或超时,最好获得此失败的通知。
如果任务失败(返回非零),捕获它基本上是/bin/long-running-task || <err catching code>
。捕获超时是个问题,因为此处不会执行||
。
注册订阅或通知在这种情况下不起作用,因为订阅的任务将因失败的依赖性而失败,即:
exec { 'Task1 Failure':
command => 'echo "Failed to do xxx" | mail -s to@tld',
subscribe => Exec['Task1'],
}
将导致:
Exec[Task1 Failure]: Skipping because of failed dependencies