如何在生产后台启动 Foreman 服务器?

How do I start Foreman server on background on production?

我已经使用带有 Digital ocean 的 Ubuntu 服务器在 VPS 上成功部署了我的 rails 应用程序。我正在使用工头启动许多进程,如果我 ssh 进入我的服务器,我可以用 foreman start 启动我的工头服务器,但是当我关闭终端时,所有进程都停止了。我如何让它 运行 在后台持续显示?

提前致谢。

  • ssh 进入远程机器
  • 通过在 shell
  • 中输入 tmux 启动 tmux
  • 在启动的 tmux 会话中启动你想要的进程
  • leave/detach 通过键入 Ctrl+B 然后 D
  • tmux 会话

您现在可以安全地从远程计算机注销,您的进程将 运行 保留在 tmux 中。当您再次回来并想检查进程的状态时,您可以使用 tmux attach 附加到您的 tmux 会话。

如果您想并排使用多个会话 运行,您应该使用 Ctrl-B 和 $ 为每个会话命名。您可以使用 tmux list-sessions 获取当前 运行 会话的列表。

tmux 可以做比在单个会话中处理单个 window 更高级的事情。有关更多信息,请查看 man tmux 或 http://tmux.github.io/ 。有关 screen 和 tmux 之间主要区别的常见问题解答,请参见此处。

更好的问题是 "how do I run a Rails application as a service?"。

Foreman 是一个很好的开发工具,但它不提供进程监督、服务器自动启动、日志轮换或使用 Unix 信号管理进程的能力。

如果您的 Ubuntu 是 15.04,则您已经安装了 systemd,应该改用它。 Foreman 甚至可以通过 foreman export systemd 导出您的配置(参见 the foreman manpage)。
如果您的 Ubuntu 比那年长,您将拥有 Upstart,同样,Foreman 可以将其导出到 (foreman export upstart)。

在 运行ning 进程中使用 nohup、screen 或 tmux 是可怕的建议,即使在 运行.

短时间内也会让你的生活变得不必要的艰难