title: How to run a background process and do *not* wait?
body: <p>My goal is simple: kick off rsync and DO NOT WAIT.</p>
  
  <p>Python 2.7.9 on Debian</p>
  
  <p>Sample code:</p>
  
  <pre><code>rsync_cmd = "/usr/bin/rsync -a -e 'ssh -i /home/myuser/.ssh/id_rsa' {0}@{1}:'{2}' {3}".format(remote_user, remote_server, file1, file1)
  rsync_cmd2 = "/usr/bin/rsync -a -e 'ssh -i /home/myuser/.ssh/id_rsa' {0}@{1}:'{2}' {3} &amp;".format(remote_user, remote_server, file1, file1)
  rsync_path = "/usr/bin/rsync"
  rsync_args = shlex.split("-a -e 'ssh -i /home/mysuser/.ssh/id_rsa' {0}@{1}:'{2}' {3}".format(remote_user, remote_server, file1, file1))
  #subprocess.call(rsync_cmd, shell=True)     # This isn't supposed to work but I tried it
  #subprocess.Popen(rsync_cmd, shell=True)    # This is supposed to be the solution but not for me
  #subprocess.Popen(rsync_cmd2, shell=True)   # Adding my own shell "&amp;" to background it, still fails
  #subprocess.Popen(rsync_cmd, shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)  # This doesn't work
  #subprocess.Popen(shlex.split(rsync_cmd))   # This doesn't work
  #os.execv(rsync_path, rsync_args)           # This doesn't work
  #os.spawnv(os.P_NOWAIT, rsync_path, rsync_args) # This doesn't work
  #os.system(rsync_cmd2)                      # This doesn't work
  print "DONE"
  </code></pre>
  
  <p>(I've commented out the execution commands only because I'm actually keeping all of my trials in my code so that I know what I've done and what I haven't done.  Obviously, I would run the script with the right line uncommented.)</p>
  
  <p>What happens is this...I can watch the transfer on the server and when it's finished, then I get a "DONE" printed to the screen.</p>
  
  <p>What I'd like to have happen is a "DONE" printed immediately after issuing the <code>rsync</code> command and for the transfer to start.</p>
  
  <p>Seems very straight-forward.  I've followed details outlined in other posts, like <a href="https://stackoverflow.com/questions/1196074/how-to-start-a-background-process-in-python">this</a> one and <a href="https://stackoverflow.com/questions/89228/calling-an-external-command-in-python/2251026#2251026">this</a> one, but something is preventing it from working for me.</p>
  
  <p>Thanks ahead of time.</p>
  
  <p>(I have tried everything I can find in StackExchange and don't feel like this is a duplicate because I still can't get it to work.  Something isn't right in my setup and need help.)</p>