全部博文(2065)
分类: LINUX
2010-11-06 08:27:33
该属性可以使命令变成仅刷新触发的,也就是说只有在一个依赖的对象被改变时,命令才会被执行。仅当命令与其他对象有依赖关系时,这个参数才有意义。当你要触发某个行为时,会显得很有用:
# Pull down the main aliases file
file { "/etc/aliases":
source => "puppet://server/module/aliases"
}
# Rebuild the database, but only when the file changes
exec { newaliases:
path => ["/usr/bin", "/usr/sbin"],
subscribe => File["/etc/aliases"],
refreshonly => true
}
要注意的是只有subscribe和notify可以促发行为,而不是require,所以在使用refreshonly时,只有同时使用subscribe或notify才有意义。有效的值为true, false。
PS:应用exec也就是要这样来用。比如我更改了一个配置文件想让其生效可以借助这个资源实现。
2.returns
指定返回的代码。如果被执行的命令返回了其他的代码,一个错误(error)会被返回。默认值是0,可以定义为一个由可以接受的返回代码组成的数组或单值。
PS:你在你的代码里面即command命令里面你是可以返回exit值的。
3.logoutput
是否记录输出。默认会根据exec资源的日志等级(loglevel) 来记录输出。若定义为on_failure,则仅在命令返回错误的时候记录输出。可取的值为:true,false和其他合法的日志等级。
如果命令被成功执行,所有的输出会被记录在实例的正常(normal)日志里,但是如果命令执行失败(既返回值与我们所指定的不同),那么所有的输出会在错误(err)日志中被记录。
但是我测试的过程中发现:
测试发现exec里面指定returns的值时 当客户端主动过来请求的时候会报错。比如我指定returns=>0如果我的command返回1即就会报err!但是当我从服务器主动推的时候就不会报错了。
这个要怎么解决?