I'm trying to deploy a web app in Brubeck, a tornado-like python framework that runs on top of mongrel2 and I'm having trouble deploying mongrel2 in a fabric script.
From my fabfile:
with cd(project_dir):
    run('mkdir -p run && mkdir -p log && mkdir -p tmp')
    run('m2sh load -config mongrel2.conf -db the.db')
    sudo('m2sh start -db the.db -host localhost -sudo')
and my mongrel2.conf is very basic:
brubeck_handler = Handler(
    send_spec='ipc://127.0.0.1:9999',
    send_ident='34f9ceee-cd52-4b7f-b197-88bf2f0ec378',
    recv_spec='ipc://127.0.0.1:9998', 
    recv_ident='')
brubeck_host = Host(
    name="localhost", 
    routes={
        '/': brubeck_handler})
brubeck_serv = Server(
    uuid="f400bf85-4538-4f7a-8908-67e313d515c2",
    access_log="/log/mongrel2.access.log",
    error_log="/log/mongrel2.error.log",
    chroot="./",
    default_host="localhost",
    name="brubeck app",
    pid_file="/run/mongrel2.pid",
    port=6767,
    hosts = [brubeck_host]
)
settings = {"zeromq.threads": 1}
servers = [brubeck_serv]
Basically, I can start mongrel2 fine on the server using the same m2sh start command as above.  But when I run the fabric task, the mkdir and m2sh load tasks run fine, but then mongrel2 just doesn't start.  Anyone know why that start command would work when I paste it into the command line on the server but doesn't work in a deploy script?  AFAIK the -sudo option runs mongrel2 as a backround process, so I don't think it's an issue of the shell being closed (I tried using "nohup" just in case but that didn't help). Should I be doing something different to start mongrel2?