def kill(self):
        """Sometime terminate() is not enough, we must "help"
        external modules to die...

        :return: None
        """

        logger.info("Killing external module (pid=%d) for module %s...",
                    self.process.pid, self.name)
        if os.name == 'nt':
            self.process.terminate()
        else:
            self.process.terminate()
            # Wait for 10 seconds before killing the process abruptly
            self.process.join(timeout=KILL_TIME)
            # You do not let me another choice guy...
            if self.process.is_alive():
                logger.warning("%s is still living %d seconds after a normal kill, "
                               "I help it to die", self.name, KILL_TIME)
                os.kill(self.process.pid, signal.SIGKILL)
                self.process.join(1)
                if self.process.is_alive():
                    logger.error("%s still living after brutal kill, I leave it.", self.name)
            logger.info("External module killed")
Sometime terminate() is not enough, we must "help"
        external modules to die...

        :return: None