我試圖在Brubeck中部署一個web應用,這是一種在mongrel2上運行的類似龍捲風的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]
基本上,我可以開始使用相同m2sh start
命令上面的服務器上mongrel2罰款。但是當我運行結構任務時,mkdir
和m2sh load
任務運行良好,但是然後mongrel2不能啓動。任何人都知道爲什麼這個啓動命令會在我將它粘貼到服務器上的命令行時起作用,但在部署腳本中不起作用? AFAIK -sudo選項運行mongrel2作爲後臺進程,所以我不認爲這是關閉shell的問題(我試過用「nohup」以防萬一,但沒有幫助)。我應該做一些不同的事情來啓動mongrel2嗎?
感謝您的鏈接,這是很好的知道。出於某種原因,當我使用'pty = False'像FAQ建議那樣運行該命令時,結構進程凍結並且服務器未啓動。任何想法爲什麼?作爲一種解決方法,我在命令的末尾添加了&& sleep 1',並且一直在工作。 – danny 2012-04-26 17:55:19