def METHOD_NAME(config_dir):
    from azure.cli.telemetry.components.telemetry_logging import get_logger
    logger = get_logger('process')
    args = [sys.executable, os.path.realpath(__file__), config_dir]
    logger.info('Creating upload process: "%s %s %s"', *args)
    kwargs = {'args': args}
    if os.name == 'nt':
        # Windows process creation flag to not reuse the parent console.
        # Without this, the background service is associated with the
        # starting process's console, and will block that console from
        # exiting until the background service self-terminates.
        # Elsewhere, fork just does the right thing.
        kwargs['creationflags'] = 0x00000010  # CREATE_NEW_CONSOLE
        startupinfo = subprocess.STARTUPINFO()
        startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
        startupinfo.wShowWindow = subprocess.SW_HIDE
        kwargs['startupinfo'] = startupinfo
    else:
        if sys.version_info >= (3, 3):
            kwargs['stdin'] = subprocess.DEVNULL
            kwargs['stdout'] = subprocess.DEVNULL
            kwargs['stderr'] = subprocess.STDOUT
    subprocess.Popen(**kwargs)
    logger.info('Return from creating process')