Forum: Cfengine Help
Subject: Re: Linux: Restart service
Author: babudro
Link to topic: https://cfengine.com/forum/read.php?3,18802,18804#msg-18804

Hello Michael.

I use the promise_repaired clause to detect if anything changed and, if so, the 
"commands:sendmail_fixed::" section takes effect.  The basic method I follow is 
to find a pre-existing class (e.g., "time of day") that meets my criteria or 
set a class based on arbitrary criteria (e.g., does a file exist?) and then use 
that class setting to restart the service if it is "true".

Here is an example of how I am maintaining my Sendmail configuration file and 
re-starting the service:


bundle agent sendmail {
  files:
    linux::
      "/etc/mail/sendmail.mc"
      comment       => "Maintain /etc/mail/sendmail.mc",
      create        => "true",
      edit_line     => sendmail_mc,
      edit_defaults => empty,
      perms         => mog("644", "root", "root"),
      classes       => define_class("sendmail_fixed", "sendmail_failed");

  commands:
    sendmail_fixed::
      "/etc/init.d/sendmail restart";
  }

body classes define_class(if,else) {
  promise_repaired  => { "$(if)" };
  repair_failed     => { "$(else)" };
  persist_time      => "0";
  }


I hope this is helpful.

_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to