File: //proc/self/root/lib/python2.7/site-packages/lap/count_process.py
import os
from glob import glob as ls
def __run__(params):
try:
acct = {}
alm = {}
def check_uid(proc_id):
try:
return (os.stat(cmdline).st_uid, open(cmdline).read().replace('\x00',''))
except:
return (0, 0)
def counter(uid, cmdline):
key = "uid: %s cmd: %s" % (uid, cmdline)
if cmdline in acct:
acct[key] += 1
if acct[key] >= params.get('max_procs'):
raise ValueError("Found %s process %s" % (acct[key], key))
else:
acct.update({key: 1})
[ counter(*value) for value in
[ check_uid(cmdline) for cmdline in ls('/proc/*/cmdline') ]
if value[0] != 0 and 'php-cgi' not in value[1] ]
except socket.timeout:
return [2, "CRITICAL: Socket timeout"]
except socket.gaierror:
return [2, "CRITICAL: Unable to resolve domain"]
except urllib2.HTTPError, e:
return [2,"CRITICAL: HTTPError - %s" % e]
except Exception, e:
return [2,"CRITICAL: %s" % repr(e)]
else:
return [0, "OK"]