#!/usr/bin/env python
import subprocess
import re
import syslog

syslog.openlog("Python")
syslog.syslog(syslog.LOG_ALERT, "usercleanup started")
# need stderr as well... ugh.
proc_output = subprocess.check_output('/usr/bin/fuser -u /', stderr=subprocess.STDOUT, shell=True)

usersset = set()
for item in proc_output.split():
  matchobj = re.search(r'[a-z].*[0-9][0-9]', item, re.M|re.I)
  if matchobj:
    notclean = matchobj.group()
    cleaned = notclean.replace('c(','')
    #print cleaned
    usersset.add(cleaned)
  #print item

userslist = list(usersset)
#print userslist

for user in userslist:
  runcmd = "/usr/bin/killall -9 -u " + user
  try:
    proc_output = subprocess.check_output(runcmd, stderr=subprocess.STDOUT, shell=True)
    print proc_output
    print runcmd
  except:
    # don't care so just pass
    pass

# twice for good measure
for user in userslist:
  runcmd = "/usr/bin/killall -9 -u " + user
  try:
    proc_output = subprocess.check_output(runcmd, stderr=subprocess.STDOUT, shell=True)
    print proc_output
    print runcmd
  except:
    # don't care so just pass - 2nd go should have given time to kill items....
    pass

