Cfengine
我可以將 cfengine3 程序的 LHS: 行傳遞給 RHS 嗎?
我正在使用 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
功能。你不能這樣做嗎?
processes: "foobar" restart_class => start_foobar;
如果您還需要同時匹配其他條件,例如按照您的建議執行它的使用者,我建議您使用如下變數:
vars: "program" string => "foobar";
或者,更好的是,編寫一個帶有一些參數的包,如下所示:
bundle agent restart(program, path) { processes: "${program}" # documented way would be to use .* here process_select => command("${program}"), restart_class => start_foobar; commands: start_foobar:: "${path}/${program}"; } body process_select command(c) { command => "$(c)"; process_result => "command"; }
然後只需將此捆綁包稱為重新啟動(“foobar”,“/usr/bin”)。
我沒有測試上面的程式碼,你可能需要調整它!