code: def main():
      gateway_port = random_port()
      gateway_host = "localhost"
      with subprocess.Popen(
          [
              sys.executable,
              "-m",
              "mlflow",
              "deployments",
              "start-server",
              "--config-path",
              "examples/gateway/openai/config.yaml",
              "--host",
              gateway_host,
              "--port",
              str(gateway_port),
          ]
      ) as gateway, subprocess.Popen(
          [
              sys.executable,
              "-m",
              "mlflow",
              "server",
              "--dev",
          ],
          env={
              **os.environ,
              "MLFLOW_DEPLOYMENTS_TARGET": f"http://{gateway_host}:{gateway_port}",
          },
      ) as server, subprocess.Popen(
          [
              "yarn",
              "start",
          ],
          cwd="mlflow/server/js",
      ) as ui:
          while True:
              try:
                  time.sleep(1)
              except KeyboardInterrupt:
                  gateway.terminate()
                  server.terminate()
                  ui.terminate()
                  break
  
imports: import os
  import socket
  import subprocess
  import sys
  import time
label_desc: Use image node_id 2 for calling a global function with example usage: main() without return types