我正在使用 cfengine 来启动 foobar 进程。显然,当我使用 process_select 时,LHS 被丢弃了?我可以简单地将 LHS 传递给函数,而不必将命令匹配模式放在正文参数中吗?
我只想匹配foobar
属于特定用户的进程,因为另一个用户很容易运行foobar
以进行测试。
bundle agent foobar {
processes:
"foobar" # documented way would be to use .* here
process_select => command("foobar"),
restart_class => start_foobar;
commands:
start_foobar::
"/usr/bin/foobar";
}
body process_select command(c) {
command => "$(c)";
process_result => "command";
}
据我所知,如果你只是想寻找“foobar”进程,你根本不需要使用该
process_select
功能。你不能这样做吗?
如果您还需要同时匹配其他条件,例如按照您的建议运行它的用户,我建议您使用如下变量:
或者,更好的是,编写一个带有一些参数的包,如下所示:
然后只需将此捆绑包称为重新启动(“foobar”,“/usr/bin”)。
我没有测试上面的代码,你可能需要调整它!