I don't think he wanted to change his actionsequence. And even if you have a classes defined in the actionsequence for a give action it still runs all the statements for the action. So in effect you get the following.
actionsequence = ( processes shellcommands processes.post ) Watch: control: actionsequence = ( processes.pre shellcommands processes.post ) processes: pre:: "cron" signal=HUP define=class1 any:: "cron" signal=HUP define=class2 post:: "cron" signal=HUP define=class3 shellcommands: class1:: "/bin/echo class1" class2:: "/bin/echo class2" class3:: "/bin/echo class3" See it executed the processes class under any::, which is what Brian was hoping to avoid. ********************************************************************* Main Tree Sched: processes.pre pass 1 @ Thu Feb 23 10:10:30 2006 ********************************************************************* New temporary class additions --------( Pass 1 )------- pre cfengine:hsysnav02: Running process command /bin/ps auxw cfengine:hsysnav02: Signalled process 2145 (cron) with SIGHUP Defining classes class1 DoSignals(cron) cfengine:hsysnav02: Signalled process 2145 (cron) with SIGHUP Defining classes class2 DoSignals(cron) ********************************************************************* Main Tree Sched: shellcommands pass 1 @ Thu Feb 23 10:10:30 2006 ********************************************************************* cfengine:hsysnav02: Executing script /bin/echo class1...(timeout=0,uid=-1,gid=-1) (Setting umask to 77) cfengine:hsysnav02:/bin/echo class: class1 cfengine:hsysnav02: Finished script /bin/echo class1 cfengine:hsysnav02: Executing script /bin/echo class2...(timeout=0,uid=-1,gid=-1) (Setting umask to 77) cfengine:hsysnav02:/bin/echo class: class2 cfengine:hsysnav02: Finished script /bin/echo class2 ********************************************************************* Main Tree Sched: processes.post pass 1 @ Thu Feb 23 10:10:30 2006 ********************************************************************* New temporary class additions --------( Pass 1 )------- post cfengine:hsysnav02: Running process command /bin/ps auxw cfengine:hsysnav02: Signalled process 2145 (cron) with SIGHUP Defining classes class3 DoSignals(cron) Checking for potential rule:: Shell </bin/echo class3> / class3 ********************************************************************* Main Tree Sched: processes.pre pass 2 @ Thu Feb 23 10:10:30 2006 ********************************************************************* New temporary class additions --------( Pass 2 )------- pre cfengine:hsysnav02: Running process command /bin/ps auxw Checking for potential rule:: Shell </bin/echo class3> / class3 ********************************************************************* Main Tree Sched: shellcommands pass 2 @ Thu Feb 23 10:10:30 2006 ********************************************************************* cfengine:hsysnav02: Executing script /bin/echo class3...(timeout=0,uid=-1,gid=-1) (Setting umask to 77) cfengine:hsysnav02:/bin/echo class: class3 cfengine:hsysnav02: Finished script /bin/echo class3 On 2/14/06, David E. Nelson <[EMAIL PROTECTED]> wrote: > > Hi Brian, > > How about something like this. Regarding your actionsequence, how about > 'actionsequence = ( processes.pre shellcommands processes.post )'. I'm not > familiar w/ Debian start/stop scripts so I'm showing solaris versions to get > the point across. > > processes: > pre.solaris:: > "lpsched$" # Systems do not run print services > matches=0 # Do nothing if we match this number. > action=bymatch > define=solaris_lpsched_stop > > post.solaris:: > <whatever else> > > shellcommands: > solaris_lpsched_stop:: > "/etc/init.d/lp stop ; rm /etc/rc2.d/S*lp" > > Regards, > /\/elson > > > > On Tue, 14 Feb 2006, Brian E. Seppanen wrote: > > > I have my actionsequence as > > > > actionsequence = ( shellcommands processes ) > > > > I am loath to modify that order because sometimes a shellcommand is going to > > trigger a process restart. > > > > I have enountered a situation though where I want to do a process check to > > see if a specific process is running > > > > such as > > > > processes: > > debian:: > > "rpc.statd" signal=term define=servicesremove > > "portmap" signal=term define=servicesremove > > > > > > servicesremove.shellcommands: > > debian:: > > "/usr/bin/env PATH=/sbin:/usr/sbin:/bin/:/usr/bin:/usr/local/bin > > /usr/sbin/update-rc.d -f nfs-common remove" > > "/usr/bin/env PATH=/sbin:/usr/sbin:/bin/:/usr/bin:/usr/local/bin > > /usr/sbin/update-rc.d -f nfs-kernel remove" > > "/usr/bin/env PATH=/sbin:/usr/sbin:/bin/:/usr/bin:/usr/local/bin > > /usr/sbin/update-rc.d -f portmap remove" > > > > > > How do I trigger this action to occur only if the identified process is > > matched? The servicesremove is being activiated even if the process is not > > running and is occurring every time. > > > > > > BTW: Anyone running a later cfengine version 2.1.17, 2.1.18 successfully on > > linux sparc64? > > > > > > Thanks, > > > > > > Brian Seppanen > > 608.826.1464 > > > > > > _______________________________________________ > > Help-cfengine mailing list > > Help-cfengine@gnu.org > > http://lists.gnu.org/mailman/listinfo/help-cfengine > > > > -- > ~~ ** ~~ If you don't think too well, then don't think too much. ~~ ** ~~ > > > _______________________________________________ > Help-cfengine mailing list > Help-cfengine@gnu.org > http://lists.gnu.org/mailman/listinfo/help-cfengine > -- Christian Pearce _______________________________________________ Help-cfengine mailing list Help-cfengine@gnu.org http://lists.gnu.org/mailman/listinfo/help-cfengine