Я пытаюсь развернуть веб-приложение в Brubeck , подобном торнадо фреймворку Python, который работает поверх mongrel2, и у меня возникают проблемы с развертыванием mongrel2 в сценарии фабрики.
Из моего 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')
и мой mongrel2.conf очень прост:
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]
В принципе, я могу нормально запустить mongrel2 на сервере, используя ту же команду m2sh start
как указано выше.Но когда я запускаю матричную задачу, задачи mkdir
и m2sh load
работают нормально, но тогда mongrel2 просто не запускается.Кто-нибудь знает, почему эта команда запуска работает, когда я вставляю ее в командную строку на сервере, но не работает в сценарии развертывания?AFAIK Опция -sudo запускает mongrel2 в качестве фонового процесса, поэтому я не думаю, что проблема заключается в закрытии оболочки (на всякий случай я попытался использовать nohup, но это не помогло).Должен ли я делать что-то другое, чтобы начать mongrel2?