Procmon watches what processes are being started, killed, and currently running -- and takes action based on that knowledge and the guidelines laid down by the rules file.
Procmon is designed to be run as a background service, which keeps track of which processes have just been started, just died, or are currently running.
The operation of procmon is defined by a "rules" file, which lays out conditions for procmon to find.
When a condition is found, procmon takes a given block of shell script and executes it for as long as the condition remains true, running it once per second.
Example: You can have a condition so that when OpenArena starts, procmon kills compiz and unity. When OpenArena dies, it can start those both back up again.