Can't get Fabric's detached screen session example to work
run('screen -d -m yes; sleep 1')
works.
Not sure if Fabric or screen are to blame for this behaviour though.
Although AVB answer is perfect I'll add a small tip which may help someone like me. If you want to run more than one command put them to a executable file.
This will not work:
run('screen -d -m "./ENV/bin/activate; python run.py; sleep 1"')
So create a run.sh file:
#!/bin/bash
source ENV/bin/activate
python run.py
And use it like run('screen -d -m ./run.sh; sleep 1')