使用Fabric运行多个本地终端进程

时间:2017-10-22 18:39:06

标签: python django parallel-processing fabric

使用面料的新手。我有一个带有django后端和角形前端的项目。我尝试使用fabfile更轻松地在本地运行项目。这是脚本的一部分,我被卡住了......

# activate venv and start backend server
with lcd(projectpath), prefix('. venv/bin/activate'):
    local(projectpath+backendfolder+'manage.py runserver')

# start frontend server <==== FAB STOPS HERE!!
with lcd(projectpath+frontendfolder):
    local('npm start')

我已设法启动虚拟环境并使manage.py runserver正常工作。然而,结构停在那里,并没有继续执行启动我的角度服务器。这显然是因为这是一个连续的过程。

在我的django服务器运行后,如何让角度服务器作为新的终端进程运行?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题:当你运行你的后端服务器时,它会打开一个挂起的shell(就像本地shell一样),这次会阻塞所有其他的。使用nohup linux工具以及pty=False作为第二个参数对我有用:

run('nohup {} &> /dev/null &'.format(your_command), pty=False)

我必须设置pty=False,但您可能没有义务这样做。先试试吧。

而且,如果nohup无效,this link from Fabric's FAQ会提出替代解决方案,这可能会对您有所帮助。