我有一个Exec
资源,它使用一些特定的标志/参数启动进程。如果确切的进程已经运行,我不希望它运行。我以为我可以引用资源自己的$command
属性。但是,这确实不起作用...... 有没有办法引用当前资源?
exec { 'foo':
command => 'foo --bar baz',
unless => "pgrep -f '${command}'",
}
答案 0 :(得分:2)
没有。没有。
您可以(并且应该)通过将exec
包装在已定义的类型中来解决此问题。
define safe_exec($command=$name, $parameters = "") {
exec {
"$command $parameters":
unless => "pgrep -f '$command'",
}
}
答案 1 :(得分:0)
资源似乎没有任何方式可以引用它自己的属性。您至少可以将命令提取到适当范围内的变量。
$foo_bar = 'foo --bar baz'
exec { 'foo':
command => $foo_bar,
unless => "pgrep -f '${foo_bar}'",
}