code: def start_global_driver(keytab=None, principal=None, log=None,
                              log_level=None, java_options=None):
          
          address, pid = _read_driver()
  
          if address is not None:
              try:
                  Client(address=address)
                  return address
              except ConnectionError:
                  if pid_exists(pid):
                      # PID exists, but we can't connect, reraise
                      raise
                  # PID doesn't exist, warn and continue as normal
                  context.warn("Previous driver at %s, PID %d has died. Restarting."
                               % (address, pid))
          address, _ = _start_driver(set_global=True,
                                     keytab=keytab,
                                     principal=principal,
                                     log=log,
                                     log_level=log_level,
                                     java_options=java_options)
          return address
docs: Start the global driver.
  
          No-op if the global driver is already running.
  
          Parameters
          ----------
          keytab : str, optional
              Path to a keytab file to use when starting the driver. If not
              provided, the driver will login using the ticket cache instead.
          principal : str, optional
              The principal to use when starting the driver with a keytab.
          log : str, bool, or None, optional
              Sets the logging behavior for the driver. Values may be a path for
              logs to be written to, ``None`` to log to stdout/stderr, or
              ``False`` to turn off logging completely. Default is ``None``.
          log_level : str or skein.model.LogLevel, optional
              The driver log level. Sets the ``skein.log.level`` system property.
              One of {'ALL', 'TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL',
              'OFF'} (from most to least verbose). Default is 'INFO'.
          java_options : str or list of str, optional
              Additional Java options to forward to the driver. Can also be
              configured by setting the environment variable
              ``SKEIN_DRIVER_JAVA_OPTIONS``.
  
          Returns
          -------
          address : str
              The address of the driver