0

我有一个这样的 Procfile:

web: bundle exec unicorn -c config/unicorn.rb -E production
god: god -c services.god

foreman start god没有开始......它只是这样说:

17:14:32 god.1  | started with pid 29506
17:14:32 god.1  | exited with code 0
17:14:32 system | sending SIGTERM to all processes
SIGTERM received

如果我运行god -c services.god,所有服务都运行良好......有
什么想法吗?
谢谢

4

2 回答 2

5

你不应该和工头一起跑神。foreman 用于指定应用程序中的所有后台(和 web)进程,而 god 是这些进程的进程监控框架。

通常,您应该:

  1. Procfile直接在您的(而不是)中指定所有进程services.god,并用于foreman start在开发中运行它们。
  2. 使用上帝来监控生产中的过程。我使用我的foreman_god gem 直接用上帝加载 Procfile。或者,您可以导出一个上帝配置文件

也就是说,如果你真的想从工头运行上帝:上帝默认作为守护进程运行,而守护进程不能与工头一起工作(请参阅此 wiki 页面)。如果您将 -D(不守护进程)选项传递给上帝,它应该可以工作:

god: god -D -c services.god
于 2012-11-12T08:51:37.407 回答
1

如果您将上帝与 rvm 一起使用,您可能应该使用类似的东西,

god: rvmsudo god -c /path_to_yourgod_file.god

但是为什么您需要两个不同的监控系统,而您可以使用其中任何一个来完成您的工作?

于 2012-10-25T12:38:54.310 回答