1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
body common control
{
bundlesequence => { "service_catalogue" };
}
bundle agent service_catalogue
{
services:
"syslog" service_policy => "start";
"www" service_policy => "stop";
}
bundle agent standard_services(service, state)
{
vars:
debian::
"startcommand[www]" string => "/etc/init.d/apache2 start";
"stopcommand[www]" string => "/etc/init.d/apache2 stop";
"processname[www]" string => "apache2";
"startcommand[syslog]" string => "/etc/init.d/rsyslog start";
"stopcommand[syslog]" string => "/etc/init.d/rsyslog stop";
"processname[syslog]" string => "rsyslogd";
classes:
"start" expression => strcmp("start","$(state)");
"stop" expression => strcmp("stop","$(state)");
processes:
start::
".*$(processname[$(service)]).*"
comment => "Verify that the service appears in the process table",
restart_class => "restart_$(service)";
stop::
".*$(processname[$(service)]).*"
comment => "Verify that the service does not appear in the process table",
process_stop => "$(stopcommand[$(service)])",
signals => { "term", "kill"};
commands:
"$(startcommand[$(service)])"
comment => "Execute command to restart the $(service) service",
if => "restart_$(service)";
}
|