🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 检测编译错误 > My mechanic told me, _I couldn’t repair your brakes, so I made your horn louder_. > > — Steven Wright 通常,当出现问题时,我们会在继续运行前先停止它并修复错误。然而, 当以守护进程模式运行时,Puppet 会忽略配置清单的编译错误, 仅从缓存中应用最近一次已知可运行的版本。这个行为是由 usecacheonfailure 配置设置的, 且默认值为 true: ``` # puppet --genconfig |grep usecacheonfailure # usecacheonfailure = true ``` 值得注意的是,当你手动执行 puppet agent --test 应用配置清单时, 这种情况不会发生:如果配置清单中有任何错误,Puppet 将提示错误并拒绝执行。 这是因为 --test 开关是如下选项的缩写: ``` # puppet agent --onetime --verbose --ignorecache --no-daemonize --no-usecacheonfailure ``` 因为 usecacheonfailure 仅当 Puppet 以守护进程运行时有效, 有时你不会注意到一段时间内配置清单中的错误,因为 Puppet 会静默地运行旧版本的配置清单而不是显示出错信息。 #### 操作步骤 如果你想改变这一行为,在 puppet.conf 中做如下设置: ``` usecacheonfailure = false ``` #### 工作原理 使用这种设置后,Puppet 将立即输出错误信息并拒绝运行,直至所有的配置清单均正确。