def start_jar()

in plugins/mkdocs-atlas-formatting-plugin/mkdocs_atlas_formatting_plugin/atlaswebserver.py [0:0]


    def start_jar(self, jar: str, host: str, port: int) -> None:
        """Start the Atlas Standalone jar and wait for the webserver port to become available."""

        if self.port_is_open(host, port):
            raise ChildProcessError(f'ERROR: another process is listening on port {port}')

        logger.info(f'starting atlas webserver on port {port}')

        self.proc = Popen(['java', '-jar', jar], stdout=DEVNULL, stderr=DEVNULL)

        count = 0

        while True:
            if self.port_is_open(host, port):
                break
            else:
                if count > self.webserver_timeout:
                    self.proc.terminate()
                    raise ChildProcessError(
                        f'ERROR: failed to access atlas webserver on ' +
                        f'port {port} after {self.webserver_timeout}s'
                    )
                count += 1
                time.sleep(1)

        logger.info(f'webserver startup complete in {count}s, pid={self.proc.pid}')