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?