2012-11-08 14 views

回答

36

壳指定的每个过程,同样是答案。这很简单

web: sh -c 'cd ./directory/ && exec appname' 
+0

为什么你需要sh -c,引号和点和斜杠?难道你不能这样做:web:cd directory && exec appname? – ma11hew28

+3

我记得问题是第一个'cd'将会在它自己的进程中启动,并且在它完成之后,它所改变的目录将会恢复到工头正在运行的位置。使用'sh'会将它自己的环境拖垮,并且之后引号中的所有内容都将继承此环境。 – JohnDoe

2

答案“我如何在Procfile中指定进程的启动位置?”

你可以告诉工头在应用程序根目录意味着这并不一定是相同的地方Procfile。

您可以使用-d选项启动Foreman(也可能需要使用-f来处理Procfile)。

$ foreman start -d ./directory 

http://ddollar.github.io/foreman/

+2

是的,但是如果在同一个Procfile中列出的不同进程具有不同的根目录呢?然后 – ma11hew28

+0

@mattdipasquale具有Procfile与不同行如下主目录: '服务1:工头开始-d ./directory1\n服务2:工头启动-d/directory2' –

2

您可以链的一组壳的命令一起。使用当前版本的Foreman,您不需要像在@ JohnDoe的答案中一样将其封装在shell命令中。

web: cd server_dir && start web_service 
clk: cd clock_tower && start timers 

这些将从它们各自的文件夹开始必要的过程并独立跟踪它们。

相关问题