def run(self, address, port, unix_path):
        """ Starts the Daemon, handling commands until interrupted.

        @return False if error. Runs indefinitely otherwise.
        """
        assert address or unix_path
        if unix_path:
            sock = bind_unix_socket(unix_path)
        else:
            sock = bind_socket(address, port)
        if sock is None:
            return False

        sock.setblocking(False)
        inputs = [sock]
        outputs = []
        try:
            while True:
                readable, _, _ = select.select(
                    inputs, outputs, inputs, SCHEDULER_CHECK_PERIOD)
                for r_socket in readable:
                    if unix_path and r_socket is sock:
                        client_stream, _ = sock.accept()
                        logger.debug("New connection from %s", unix_path)
                        self.handle_client_stream(client_stream, True)
                    else:
                        client_stream = self.new_client_stream(sock)
                        if client_stream is None:
                            continue
                        self.handle_client_stream(client_stream, False)
                    close_client_stream(client_stream, unix_path)
                self.scheduler()
        except KeyboardInterrupt:
            logger.info("Received Ctrl-C shutting-down ...")
        finally:
            sock.shutdown(socket.SHUT_RDWR)
            sock.close()
Starts the Daemon, handling commands until interrupted.

        @return False if error. Runs indefinitely otherwise.