Prototype: processexists(regex)

Return type: boolean

The return value is cached.

Description: Return whether a process matches the given anchored regular expression regex.

This function searches for the given regular expression in the process table. Use .*sherlock.* to find all the processes that match sherlock. Use .*\bsherlock\b.* to exclude partial matches like sherlock123 (\b matches a word boundary).

Arguments:

  • regex: regular expression - Regular expression to match process name - in the range: .*

The process table is usually obtained with something like ps -eo user,pid,ppid,pgid,%cpu,%mem,vsize,ni,rss,stat,nlwp,stime,time,args, and the CMD or COMMAND field (args) is used to match against. However the exact data used may change per platform and per CFEngine release.

Example:

code
classes:
  # the class "holmes" will be set if a process line contains the word "sherlock"
  "holmes" expression => processexists(".*sherlock.*");

History: Introduced in CFEngine 3.9

See also: processes findprocesses().