docs: def spawn_daemon(fork=None, pgrpfile=None, outfile='out.txt'):
      'causes run to be executed in a newly spawned daemon process'
      global LAST_PGRP_PATH
      fork = fork or os.fork
      open(outfile, 'a').close()  # TODO: configurable output file
      if pgrpfile and os.path.exists(pgrpfile):
          try:
              cur_pid = int(open(pgrpfile).read().rstrip("\n"))
              os.killpg(cur_pid, 0)
              raise Exception("arbiter still running with pid:" + str(cur_pid))
          except (OSError, ValueError):
              pass
      if fork():  # return True means we are in parent
          return True
      else:
          os.setsid()  # break association with terminal via new session id
          if fork():  # fork one more layer to ensure child will not re-acquire terminal
              os._exit(0)
          LAST_PGRP_PATH = pgrpfile
          if pgrpfile:
              with open(pgrpfile, 'w') as f:
                  f.write(str(os.getpgrp()) + "\n")
          logging.root.addHandler(SysLogHandler())
          rotating_out = RotatingStdoutFile(outfile)
          rotating_out.start()
          return False