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