public static synchronized void disposeServer() {

		System.setProperty(ApplicationTrustManagerFactory.GHIDRA_CACERTS_PATH_PROPERTY, "");

		if (serverProcess != null) {

			cmdOut.dispose();
			cmdErr.dispose();

			Msg.debug(ServerTestUtil.class, "*** Terminating Ghidra Server Instance... ***");

			serverProcess.destroy();

			Msg.debug(ServerTestUtil.class, "\tafter call to destroy");

			try {
				serverProcess.waitFor();
			}
			catch (InterruptedException e) {
				// don't care
			}

			if (serverProcess.isAlive()) {
				Msg.debug(ServerTestUtil.class, "Its alive...");
			}

			dumpServerLog();

			serverProcess = null;
			serverRepositories = null;

			if (testPkiDirectory != null) {
				FileUtilities.deleteDir(testPkiDirectory);
				testPkiDirectory = null;
			}
		}
	}
Start new server instance and return server adapter.
This method blocks until server is started and adapter is connected.  
@param serverRoot root directory
@param users list of server users
@return server adapter
@throws IOException if there are any IOExceptions starting the server
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/server/remote/ServerTestUtil.java