'Wrapper to the serve_forever function.
This function will restore the terminal to a sane state
before re-raising the exception and generating a traceback.'

def serve_forever(self):

    self.__serve_forever()
    try:
        self.schedule.run()
    finally:
        self.end()
