X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fbuildd%2Ffiles%2Fbuildd-schroot-aptitude-kill;h=74c4a02f5a6bef93bbacf019771373380b6f3e34;hb=c83c71f4aa4da40edbbcb00a15f15376342aa6e7;hp=220e9df994c2d1dc6b4460c292360bb489280c2a;hpb=6daebec74370abf74954a830aa40170a0b5f7bf4;p=mirror%2Fdsa-puppet.git diff --git a/modules/buildd/files/buildd-schroot-aptitude-kill b/modules/buildd/files/buildd-schroot-aptitude-kill index 220e9df99..74c4a02f5 100755 --- a/modules/buildd/files/buildd-schroot-aptitude-kill +++ b/modules/buildd/files/buildd-schroot-aptitude-kill @@ -24,24 +24,35 @@ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. import os -import psutil +import errno +import sys +try: + import psutil +except OSError, e: + # XXX: This is a hack, but since we are run from cron, it's + # better to handle this on the next run than to send mail. + if e.errno == errno.ENOENT: + sys.exit(0) total_mem = psutil.phymem_usage().total cutoff_time = 60*10 for p in psutil.process_iter(): - if p.name != 'aptitude': continue - parent = p.parent - if parent is None: continue - if parent.name != 'schroot': continue - # - rootdir = os.readlink('/proc/%d/root'%(p.pid,)) - if not rootdir.startswith('/var/lib/schroot/mount'): continue - # - used = p.get_memory_info().vms - if used < total_mem: continue - # - cputime = p.get_cpu_times().user - if cputime < cutoff_time: continue - # - p.kill() + try: + if p.name != 'aptitude': continue + parent = p.parent + if parent is None: continue + if parent.name != 'schroot': continue + # + rootdir = os.readlink('/proc/%d/root'%(p.pid,)) + if not rootdir.startswith('/var/lib/schroot/mount'): continue + # + used = p.get_memory_info().vms + if used < total_mem: continue + # + cputime = p.get_cpu_times().user + if cputime < cutoff_time: continue + # + p.kill() + except psutil.error.NoSuchProcess: + pass