ansible run command on remote host in background

Simplified answer from link I mentioned in the comment:

---
- hosts: centos-target
  gather_facts: no
  tasks:
    - shell: "(cd /; python -mSimpleHTTPServer >/dev/null 2>&1 &)"
      async: 10
      poll: 0

Note subshell parentheses.

Update: actually, you should be fine without async, just don’t forget to redirect stdout:

- name: start simple http server in background
  shell: cd /tmp/www; nohup python -mSimpleHTTPServer </dev/null >/dev/null 2>&1 &

Leave a Comment