On Wed, Mar 17, 2010 at 12:47:23PM -0400, nwat...@symcor.com wrote:
>It would be ideal if we could have a policy that would count processes 
>that match and report that number rather than reporting whether or not the 
>count is within a range.  We could compare that number with a command 
>policy that would script something like ps -ef|grep cf-execd$ |grep -v 
>grep|wc -l.  Bonus points if a policy can also compare the two numbers and 
>report a difference.  However, I can't think of a policy that would 
>natively count the number processes.

I agree.  This would basically be a generic built-in function, the sort
of which has been mentioned elsewhere...  It is no different than other
basic "tools" already provided that provide integer values.  In fact,
there is already a "countlinesmatching" function which is similar in
nature:

        
http://www.cfengine.org/manuals/cf3-reference.html#Function-countlinesmatching

Perhaps a countprocessesmatching function along the lines of:
        countlinesmatching(pattern, type) returns type int.

where:
   type => 'literal', 'regex', 'fullregex', to determine the type of matching.
   pattern => variable behavior, depending on value of the 'type' argument:
     'literal', basename of the process name is compared via strcmp()
     'regex', basename of process is matched against a regex
     'fullregex', entire processname and arguments are matched vs. regex

Function returns number of processes matching the pattern/type.  A zero
value is returned if there are no processes matching.  


For bonus opints, a third optional argument:

   desired => (optional), desired number of processes.

If a 'desired' value is passed, and the number of processes matching is
*not* equal to this value, the number of matches is returned, but as a
negative value.  (a bit of a kludge, I suppose)



-- 
Jesse Becker
NHGRI Linux support (Digicon Contractor)
_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to