body common control { bundlesequence => {"test"}; host_licenses_paid => "25"; } bundle agent test { services: "ip6tables" service_policy => "restart", service_method => service_test; } body service_method service_test { service_bundle => non_standard_services("$(this.promiser)","$(this.service_policy)"); } bundle agent non_standard_services(service, state) { vars: linux:: "initdir" string => "/etc/init.d/"; "chkconfig_name[ip6tables]" string => "ip6tables"; "processname[ip6tables]" string => "ip6tables"; "startcommand[ip6tables]" string => "$(initdir)$(chkconfig_name[ip6tables]) start"; "stopcommand[ip6tables]" string => "$(initdir)$(chkconfig_name[ip6tables]) stop"; "restartcommand[ip6tables]" string => "$(initdir)$(chkconfig_name[ip6tables]) restart"; classes: any:: "restart" expression => strcmp("restart", "$(state)"), comment => "Check if to restart a service"; commands: restart:: "$(restartcommand[$(service)])" comment => "standard_services.cf Execute command to restart the $(service) service"; }