code: def _start(args):
      """Create a new process of ATM pointing the process to a certain ``pid`` file."""
      pid_path = _get_pid_path(args.pid)
      process = _get_atm_process(pid_path)
  
      if process:
          print("ATM is already running!")
  
      else:
          print("Starting ATM")
  
          if args.foreground:
              _start_background(args)
  
          else:
              pidfile = PIDLockFile(pid_path, timeout=1.0)
  
              with DaemonContext(
                  pidfile=pidfile, working_directory=os.getcwd()
              ):
                  # Set up default log file if not already set
                  if not args.logfile:
                      _logging_setup(args.verbose, "atm.log")
  
                  _start_background(args)
  
imports: import argparse
  import logging
  import multiprocessing
  import os
  import time
  import psutil
  from daemon import DaemonContext
  from lockfile.pidlockfile import PIDLockFile
  from atm.api import create_app
  from atm.config import AWSConfig, DatasetConfig, LogConfig, RunConfig, SQLConfig
  from atm.core import ATM
  from atm.data import copy_files, download_demo, get_demos
label_desc: Use image node_id 8 for calling a global function with example usage: _start(args) without return types