我对使用木偶的cron类型的environment attribute感到困惑。设置PATH似乎是一个奇怪的地方,因为如果我有多个cron作业我想要设置它似乎它们会碰撞。除了特定的每个cron作业之外,是否应该将它设置在用户的所有cron作业的全局位置?
答案 0 :(得分:0)
Ben,在我看来,这对于cron工作来说非常有意义。考虑一下,作为一个例子:在PHP中有一个名为Composer的工具用于依赖管理,并说我想通过cron安排对依赖项的自动更新。如果有很多依赖项和/或它们只需要很长时间来更新它们,那么该工具将会超时,这就是它接受COMPOSER_PROCESS_TIMEOUT环境变量的原因。因此,通过设置
environment => 'COMPOSER_PROCESS_TIMEOUT=2000',
我会有效地更改此特定情况的超时,而不会触及其他任何内容。
希望它有意义,并清除空气。
答案 1 :(得分:0)
我不相信env变量会相互冲突。 cron资源似乎在命令执行时设置变量。所以它不应该说在其他cron工作期间设置。
例如
# Puppet Name: pe-mcollective-metadata
0,15,30,45 * * * * /opt/puppet/sbin/refresh-mcollective-metadata
# Puppet Name: report_baseline
0 20 * * * PATH=/opt/puppet/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin /opt/puppet/bin/puppet inspect 1> /dev/null
因此,您可以在此处看到,refresh-mcollective-metadata作业在运行时没有设置PATH变量,但是report_baseline作业没有。