From: Claudio-Daniel Freire Date: Fri, 19 Aug 2011 08:04:20 +0000 (+0200) Subject: Finally a Serial Murder Death Killer do_cleanup X-Git-Tag: nepi-3.0.0~284 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=4ccc2f121afe8dddb36778f31c518167d76bebe2;p=nepi.git Finally a Serial Murder Death Killer do_cleanup --- diff --git a/src/nepi/testbeds/planetlab/node.py b/src/nepi/testbeds/planetlab/node.py index 15e66e1f..c3574625 100644 --- a/src/nepi/testbeds/planetlab/node.py +++ b/src/nepi/testbeds/planetlab/node.py @@ -468,27 +468,32 @@ class Node(object): return self._logger.info("Cleaning up %s", self.hostname) - - (out,err),proc = server.popen_ssh_command( - # Some apps need two kills + + cmds = [ "sudo -S killall python tcpdump || /bin/true ; " "sudo -S killall python tcpdump || /bin/true ; " - "sudo -S kill $(ps -N T -o pid --no-heading | sort) || /bin/true ; " - "sudo -S killall -u %(slicename)s || /bin/true ; " - "sudo -S killall -u %(slicename)s || /bin/true ; " - "sudo -S killall -u root || /bin/true ; " - "sudo -S killall -u root || /bin/true " % { - 'slicename' : self.slicename , - }, - host = self.hostname, - port = None, - user = self.slicename, - agent = None, - ident_key = self.ident_path, - server_key = self.server_key, - tty = True, # so that ps -N -T works as advertised... - ) - proc.wait() + "sudo -S kill $(ps -N -T -o pid --no-heading | grep -v $PPID | sort) || /bin/true ", + "sudo -S killall -u %(slicename)s || /bin/true ", + "sudo -S killall -u root || /bin/true ", + "sudo -S killall -u %(slicename)s || /bin/true ", + "sudo -S killall -u root || /bin/true ", + ] + + for cmd in cmds: + (out,err),proc = server.popen_ssh_command( + # Some apps need two kills + cmd % { + 'slicename' : self.slicename , + }, + host = self.hostname, + port = None, + user = self.slicename, + agent = None, + ident_key = self.ident_path, + server_key = self.server_key, + tty = True, # so that ps -N -T works as advertised... + ) + proc.wait() def prepare_dependencies(self): # Configure p2p yum dependency installer